Day 9: 文件与文件系统

Day 9: 文件与文件系统

读取文件 (在文本模式下)

在写入其他类型的对象之前,需要先把它们转化为字符串(在文本模式下)或者字节对象(在二进制模式下)

f.read(size)

  • size 是一个可选的数值参数
  • size 被忽略或者为负时将读取并返回整个文件的内容

文件末尾
f.read() 将返回一个空字符串 (’’)

f.readline()

  • 从文件中读取一行
  • 换行符(\n)留在字符串的末尾,如果文件不以换行符结尾,则在文件的最后一行省略
  • 如果返回一个空的字符串,则表示已经到达了文件末尾,而空行使用 ‘\n’ 表示,该字符串只包含一个换行符
  • 而空行使用 ‘\n’ 表示,该字符串只包含一个换行符

从文中读取

  • 循环遍历文件对象
>>> for line in f:
...     print(line, end='')
...
This is the first line of the file.
Second line of the file
  • 以列表的形式
    使用 list(f) 或 f.readlines()

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

f.tell()
返回一个整数
给出文件对象在文件中的当前位置,表示为二进制模式下时从文件开始的字节数,以及文本模式下的不透明数字

f.seek(offset, whence)
改变文件对象的位置
offset 计算位置
whence 参考点参数指定 whence 的 0 值表示从文件开头起算,1 表示使用当前文件位置 2 表示使用文件末尾作为参考点。 whence 如果省略则默认值为 0,

>>> f = open('workfile', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5)      # Go to the 6th byte in the file
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2)  # Go to the 3rd byte before the end
13
>>> f.read(1)
b'd'

jion

json 的标准模块采用数据层次结构,并将它们转化为字符串表示形式;在序列化和反序列化之间,表示对象的字符串可能已存储在文件或数据中,或通过网络连接发送到某个远程机器。

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

dump()
dumps() 函数的一个变体,将对象序列化为 text file

>>>json.dump(x, f)# f 是一个 text file 对象
>>> x = json.load(f)#再次解码对象, f 是一个打开的以供阅读的 text file 对象
>>> x = json.load(f)

这种简单的序列化技术可以处理列表和字典,但是在JSON中序列化任意类的实例需要额外的努力。 json 模块的参考包含对此的解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值