文件读写
写入测试文件:%%writefile test.txt
读文件
用 open
函数或file
函数,例如f = open('test.txt')
或f = file('test.txt')
file_obj=open(filename, mode='r', buffering=-1,...)
buffering为可选参数,默认为-1,0代表不缓冲,正数表示缓冲区大小。二进制文件可以不使用缓冲,文本文件必须使用缓冲
Mode | Function | Mode | Function |
---|---|---|---|
r | 以读模式打开 | rb | 以二进制读模式打开 |
w | 以写模式打开(文件不存在会被创建,存在时清空原内容) | wb | 以二进制写模式打开(参见w) |
a | 以追加模式打开(从EOF开始,必要时创建新文件) | ab | 以二进制追加模式打开(参见a) |
r+ | 以读写模式打开 | rb+ | 以二进制读写模式打开(参见r+) |
w+ | 以读写模式打开(清空原内容) | wb+ | 以二进制读写模式打开(参见w+) |
a+ | 以读和追加模式打开 | ab+ | 以二进制读写模式打开(参见a+) |
文件相关函数
Mode | Function |
---|---|
f.read() |
file_obj.read(size) 从文件读出size字节数据,返回字符串;file_obj.read(size) 接着读文件直到文件结束,返回字符串 |
f.write() |
写入数据 |
f.readline() |
读取一行数据 |
f.readlines() |
读取多行数据 |
f.writelines() |
写入多行数据 |
f.close() |
关闭文件可以保证内容已经被写入文件, |
f.seek() |
在文件移动文件指针fil_obj.seek(offset, wherence=0) 从wherence(0表示在文件头部,1表示当前位置,2表示文件尾部)偏移offset个字节 |
例: 将文件companies.txt的字符串前加上1,2,3,...后写到另一个文件scompanies.txt
with open('companies.txt') as f1:
cNames=f1.readlines()
for i in range(0, len(cNames)):
cNames[i]= str(i+1) + '' +cNames[i]
with open('scompanies.txt', 'w') as f2:
f2.writelines(cNames)
因为with语句在执行后会主动关闭文件句柄,所以不用写入close语句
文件具有文件指针,指针会随着我们的操作移动,所以有时要修改指针位置。例如:
f.writelines(s)
f.seek(0) #为了读出写入的内容,将指针移到文件开头
x=f.readlines()
print(x)