对于python初学者来说,对于文件的读写总是在应用是多少会存在疑惑,这里就整理一批关于python读写文件的小实例,欢迎拍砖哦~
1. f = open('workfile', 'mode') 2. with open('workfile','mode') as f:
一般里面会有两个参数:open(filename, mode).
filename:文件名
mode:文件的使用方式
在处理文件对象时使用with关键字是一个很好的实践。这样做的好处是,即使在某个时候引发了异常,文件也会在其套件完成后正确地关闭,直接f.closed --> 返回True。如果没有使用with关键字,那么应该调用f.close()
with open('workfile','r') as f: data = f.read() print(data)
这里的‘r’可以省略,因为读取方式是默认的;另外,也可以使用readlines()读取多行数据。
with open('workfile','w') as f: f.write('15')
但需要注意的是:如果文件中原本有数据,在使用‘w’方式时,会把之前的数据替换掉,就相当于是先把之前的数据truncate掉。
使用方法和上述一样,不再赘述!
with open('workfile','a') as f: f.write('16')
这里的‘a’方式就避免了前面‘w’方式的问题,会保留原有数据,在文件最后添加新数据。
模式中的’b’以二进制模式打开文件:现在数据以字节对象的形式读写。此模式应用于所有不包含文本的文件。
如上述的‘r+’模式。
f.read(size)
要读取文件的内容,可以调用f.read(size),它读取一些数据并以字符串(文本模式)或bytes对象(二进制模式)的形式返回。size是一个可选的数值参数。当大小被省略或为负值时,将读取并返回文件的全部内容。
从文件中读取一行;换行符(\n)留在字符串的末尾,只有在文件的最后一行没有换行时才会省略。这使得返回值没有歧义;如果f.readline()返回一个空字符串,则文件结束,而空行由’\n’表示,该字符串只包含一个换行符。
>>> f.readline() 'This is the first line of the file.\n' >>> f.readline() 'Second line of the file\n' >>> f.readline() ''
要从文件中读取行,可以遍历file对象。这是内存效率高,速度快,并导致简单的代码:
for line in f: ... print(line, end='') ... This is the first line of the file. Second line of the file
f.readlines()也可以读取列表中文件的所有行,同时也可以使用list(f)
字符串可以很容易地写入和读取文件。由于read()方法只返回字符串,因此需要花费更多的精力,必须将字符串传递给int()这样的函数,int()接受’123’这样的字符串并返回其数值123。当您希望保存更复杂的数据类型(如嵌套列表和字典)时,手动解析和序列化就变得非常复杂。
Python允许使用流行的数据交换格式JSON,而不是让用户不断地编写和调试代码来将复杂的数据类型保存到文件中。名为json的标准模块可以采用Python数据层次结构,并将其转换为字符串表示;这个过程称为序列化。从字符串表示形式重新构造数据称为反序列化。在序列化和反序列化之间,表示对象的字符串可能存储在文件或数据中,或者通过网络连接发送到某个远程机器。
如果你有一个对象x,你可以用一个简单的代码行查看它的JSON字符串表示与一个简单的代码行:
>>> import json >>> json.dumps([1, 'simple', 'list']) '[1, "simple", "list"]'
dump()函数的另一个变体dump()简单地将对象序列化为文本文件。如果f是一个文本文件对象,我们可以这样做:
json.dump(x, f)
如果f是一个文本文件对象,再次解码对象,我们可以这样做:
x = json.load(f)
上述总结可参考python官方文档哦~