首页 > 其他分享 >读写文件

读写文件

时间:2022-09-20 18:12:36浏览次数:72  
标签:文件 读取 read 读写 file 字符串 size

open(filename, mode, encoding=None)

f = open('workfile', 'w', encoding='utf-8')

第一个实参是文件名字符串,第二个实参是包含描述文件使用方式字符的字符串,包括:

'r'表示文件只能读取;'w'表示只能写入(现有同名文件会被覆盖);'a'表示打开文件并追加内容,任何写入的数据会自动添加到文件末尾;'r+'表示打开文件进行读写

省略时默认'r'

在处理文件对象时,最好使用 with 关键字。优点是,子句体结束后,文件会正确关闭,即便触发异常也可以。而且,使用 with 相比等效的 try-finally 代码块要简短得多

with open('workfile', encoding="utf-8") as f:
    read_data = f.read()

如果没有使用 with 关键字,则应调用 f.close() 关闭文件,即可释放文件占用的系统资源

 

 

文件对象的方法

  • close:关闭文件
  • read:读取文件的内容。可以把结果赋给一个变量

读取一些数据,并返回字符串(文本模式)或字节串对象(二进制模式下)

f.read(size):size是可选的数值参数。省略 size 或 size 为负数时,读取并返回整个文件的内容;文件大小是内存的两倍时,会出现问题。size 取其他值时,读取并返回最多 size 个字符(文本模式)或 size 个字节(二进制模式)。如已到达文件末尾,f.read() 返回空字符串(''

>>>f.read()
'This is the entire file.\n'
>>> f.read()
''
  • readline:只读取文本文件中的一行

字符串末尾保留换行符(\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()
''

读取多行,循环遍历整个文件对象

for line in f:
    print(line, end='')

如需以列表形式读取文件中的所有行,可以用 list(f) 或 f.readlines()

  • truncate:清空文件,请谨慎使用
  • isatty:
  • tell:返回整数,给出文件对象在文件中的当前位置,表示为二进制模式下时从文件开始的字节数,以及文本模式下的意义不明的数字
  • write('stuff'):将“stuff”写入文件

f.write(string) 把 string 的内容写入文件,并返回写入的字符数

 >>> f.write('This is a test\n')

  15

  • seek(0):将读写位置移动到文件开头

f.seek(offset, whence) 可以改变文件对象的位置。通过向参考点添加 offset 计算位置

whence 值为 0 时,表示从文件开头计算,1 表示使用当前文件位置,2 表示使用文件末尾作为参考点。省略 whence 时,其默认值为 0,即使用文件开头作为参考点

使用 json 保存结构化数据

Python 支持 JSON (JavaScript Object Notation) 这种流行数据交换格式,json 标准模块采用 Python 数据层次结构,并将之转换为字符串表示形式;这个过程称为 serializing (序列化)。

从字符串表示中重建数据称为 deserializing (解序化)。在序列化和解序化之间,表示对象的字符串可能已经存储在文件或数据中,或通过网络连接发送到远方 的机器

>>> import json
>>> x = [1, 'simple', 'list']
>>> json.dumps(x)
'[1, "simple", "list"]'

dumps() 函数还有一个变体, dump() ,它只将对象序列化为 text file 。因此,如果 f 是 text file 对象,可以这样做:

json.dump(x, f)

要再次解码对象,如果 f 是已打开、供读取的 binary file 或 text file 对象:

x = json.load(f)

 

标签:文件,读取,read,读写,file,字符串,size
From: https://www.cnblogs.com/tttianII/p/16690083.html

相关文章