file = open('filename', 'w')
file.write('dididi') # 这是写入的内容
file.close()
会有许多不同的命令,可以根据需求去调用,要注意不会把写掉的东西覆盖。
open函数默认的编码是gbk中文编码,最好的习惯是打开文件时指定编码。
file = open('filename.txt','w', encoding='utf-8')
以二进制的形式写数据:'wb' str-->bytes
追加:a 新加的内容会写在原内容之后
*注意:如何使用 带'b'的后缀,说明是以二进制的形式读写,在write时,需要加上encoding 'utf-8'
-------------
读取文件
f = open('filename', 'r')
print(f.read())
print(f.read(12)) # 读取前12个字符
lines = f.readlines() # line是一个列表,每行
# 是列表的一个元素
for line in lines:
print(line)
f.close() # 关闭文件对象
# 如果数据量不较大,则内存不会释放,或许造成内存泄漏
# 也可以以二进制的方式去读,如'rb'
with :文件读取好帮手, 自动释放读取的内存,避免忘记f.close()的问题。
with open('filename','w') as f:
lines = f.readlines()
for line in lines:
print(line)
对文件读写做一下总结:
三、文件的备份
要求:用户输入文件名称,自动完成备份
# just copy the code is enough
# 明天跑一下这份代码
def copyfile():
old_file = input('please input filename')
file_list = olf_file.split(".")
new_file = file_list[0] +'2' + file_list[1]
old_f = open(old_file,'r')
new_f = open(new_file,'w')
content = old_f.read()
new_f.write(content)
old_f.close()
new_f.close()
# 就是调用最基础的命令即可完成。
# 如果需要读写大文件,需要
try:
with open(old_file, 'r') as old_f, open(new_file,'w') as new_f:
while True: # while 循环是一直进行的,除非触发break条件
content = old_f.read(1024)
new_f =write(content)
if len(content) < 1024:
break
except Exception as msg:
print(mag)
文件定位:tell()
f = open('test.txt', 'r')
content = f.read(3)
cur = f.tell()
print(cur) # 读到光标位置
content = f.read(3)
cur = f.tell()
print(cur) # 到这里就是一共读取了6个字符
中文会占用两个字符的内存。
f = open('test.txt',r)
f.truncate(15) # 保留前15个字符
print(f.read())
f.close() # 多余字符会被删除
seek()函数,操作文件需要定位到其他位置,
seek(offset, from) # offset为偏移量,负数为往前偏移
""" from 参数:
0:表示文件开头
1:表示当前位置
2:文件末尾
"""
f.read().decode('gpk') # 通过使用后缀可以读取中文