- 读文件
- f = open(path,"r",encoding="utf-8",errors="ignore")
- 模式:"r":read;"w":write;"a"":add
- f = open() ,f.read():一次读取文件的全部内容.
- f.read(size):size:一次读取文件多少的字节
f.readlines():按行读取,读取的内容以列表返回
f.readline():一行一行 读取 - f.close():文件使用完之后必须关闭
- 由于文件读写都有可能产生IOError,一旦出错,后面的f.close()就不会调用,所以,为了保证文件是否执行出错都能够正确的关闭文件,我们可以使用try … finally来实现.
try:
f = open('/path/demo/file','r')
print(f.read())
finally:
if f:
f.close() - 另一种关闭文件的方法:(比较常用)
with open('/path/demo/file', 'r') as f:
print(f.read())
该语句会自动调用f.close()
- 写文件
- 写入普通文件,with open(path,"w",encoding="utf-8") as f:
f.write(str):写入的一定是字符串类型
path:若此路径存在,则覆盖此文件,若不存在,则创建文件.
"a"模式下,追加文件内容.写入普通文件,with open(path,"a",encoding="utf-8") as f: - 写文件和读文件都是一样的,唯一的区别就是调用open()函数时传入标识符"w"或"wb",表示写文件或写二进制文件.
- 你可以反复调用write来写文件,但务必要调用f.close()来关闭文件
- 以'w'模式写入文件时,如果文件已经存在,直接覆盖(相当于删掉后新写入一个文件),如果我们希望追加到文件的末尾怎么办?可以传入'a'以追加模式写入.
with open('/users/demo/test.txt', 'a') as f:
f.write('hello, world')
- 写入普通文件,with open(path,"w",encoding="utf-8") as f:
- StringIO
- 二进制文件
- 要读取二进制文件,使用"rb"模式打开文件即可
- f = open('/users/demo/gbk.txt','r',encoding = 'gbk',errors = 'ignore')
- ByteIO
- JSon
- 如果我们需要在不同的编程语言之间传递对象,那么我们必须把对象序列化成标准化格式,比如xml,但是更好的方法是json,因为json表现出来就是一个字符串,可以被所有的语言读取,也方便存储到磁盘或者网络传输,json不仅是标准模式,并且速度也比xml更快,还可以在web中读取,非常方便。
- json.dumps(obj):将obj序列化为json字符串
a = {'name': 'wang', 'age': 29}
b = json.dumps(a) - json.loads(s):将json字符串反序列化为Python的基本数据类型.
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
jsDumps = json.dumps(name_emb)
jsLoads = json.loads(jsDumps)
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
{u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
<type 'str'>
<type 'dict'> - 如果你要处理的是文件,而不是字符串,可以使用json.dump和json.load
- 读写cvs文件
python 文件读写操作
最新推荐文章于 2023-02-10 16:21:05 发布