python文件操作
#open()返回文件对象,open(filename,mode):
mode:
#以文本打开
'r':读取文件
'w':写入文件(同名文件将会删除)
'a':追加文件
'r+':打开并写入文件
#以二进制打开,任何不包含文本的文件(文本模式下会修改行结束符,会损坏非ascll文件)
'b':二进制方式打开
'''
如果没有指定 size 或者指定为负数,就会读取并返回整个文件。当文件大小为当前机器内存两倍时,就会产生问题。反之,会尽可能按比较大的 size 读取和返回数据。如果到了文件末尾,f.read() 会返回一个空字符串('')
'''
f.read(size)
'''
f.readline() 从文件中读取单独一行,字符串结尾会自动加上一个换行符( \n ),只有当文件最后一行没有以换行符结尾时,这一操作才会被忽略。
'''
f.readline()
>>> f.readline()
'This is the first line of the file.\n'
>>> f.readline()
'Second line of the file\n'
>>> f.readline()
''
#把文件的所有行读到一个列表里
f.readlines()
list(f)
#把string写入文件,并返回写入字符长度
>>> f.write('This is a test\n')
15
#返回一个整数,代表文件对象在文件中的指针位置(比特)
f.tell()
'''
从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。
'''
file.seek(off, whence=0)
在文本文件中(没有以 b 模式打开),只允许从文件头开始寻找(有个例外是用 seek(0, 2) 寻找文件的最末尾处)
#关闭文件
f.close()
#用with会自动关闭文件
with open('workfile','r') as f:
pass
json模块:
#序列化:
json.dumps([1,'simple','list'])
#写入序列化文件(f为文件对象):
json.dumps(x,f)
#反序列化,解码(f为文件对象):
json.load(f)