python里的文件读写汇总

为什么要写这篇博客,这其实是写给我自己看的。我觉得最近用这个很多,但是对于这些我觉得应该总结一下,所以决定把各处抄来的汇个总。
首先罗列出所有文件操作

操作模式 具体含义
'r' 读取 (默认)
'w' 写入(会先截断之前的内容)
'x' 写入,如果文件已经存在会产生异常
'a' 追加,将内容写入到已有文件的末尾
'b' 二进制模式
't' 文本模式(默认)
'+' 更新(既可以读又可以写)

python文件读取

python读文件一般可以使用下列这几种方法,

import time

def main():
	# 一次性读取整个文件内容
	with open('1.txt', 'r', encoding='utf-8') as f:
		print(f.read())

	# 通过for-in循环逐行读取
	with open('1.txt', mode='r') as f:
		for line in f:
			print(line, end='')
			time.sleep(0.5)
	print()

	# 读取文件按行读取到列表中
	with open('1.txt') as f:
		lines = f.readlines()
	print(lines)

if __name__ == '__main__':
	main()

python文件写入

python写文件就更简单了,没有读文件那么多操作

def main():
	filename = '1.txt'
	try:
		with open(filename,'w') as f:
			for i in range(0,100)
				f.write(str(i))
				if i%10 ==0:
					f.write('\n')
	except FileNotFoundError as e:
		print('file open failed')
	finally:
		print('end')

这里补充一点,finally下的代码不管如何都会执行,甚至调用了sys.exit()也会执行,它是总是执行代码块

python读写json文件

由于python里的字典和json的高度相似性,因此在存储字典或者列表时,通常会以json格式保存到文件里。

JSON Python
object dict
array list
string str
number (int / real) int / float
true / false True / False
null None
Python JSON
dict object
list, tuple array
str string
int, float, int- & float-derived Enums number
True / False true / false
None null
import json


def main():
    mydict = {
        'name': '张三',
        'age': 16,
        'tel': 110,
        'friends': ['李四', '王五'],
        'cars': [
            {'brand': 'BYD', 'max_speed': 180},
            {'brand': 'Audi', 'max_speed': 280},
            {'brand': 'Benz', 'max_speed': 320}
        ]
    }
    try:
        with open('data.json', 'w', encoding='utf-8') as fs:
            json.dump(mydict, fs)
    except IOError as e:
        print(e)
    print('保存数据完成!')


if __name__ == '__main__':
    main()

json模块主要有四个比较重要的函数,分别是:

  • dump - 将Python对象按照JSON格式序列化到文件中
  • dumps - 将Python对象处理成JSON格式的字符串
  • load - 将文件中的JSON数据反序列化成对象
  • loads - 将字符串的内容反序列化成Python对象

你可能感兴趣的:(python里的文件读写汇总)