找到文件路径
打开文件
读取/修改操作
保存
关闭
代码如下:
# 定义一个变量保存需要读取的文件路径
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 打开文件,指定到一个对象
f = open(file_path, encoding= 'utf-8')
# 读取文件内的内容保存到一个变量
data = f.read()
# 关闭文件
f.close()
# r模式
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
print('f.readable:',f.readable()) #判断文件是否可读
print('f.writable:',f.writable()) #判断文件是否可写
f.close()
运行结果:
f.readable: True
f.writable: False
Process finished with exit code 0
可以看到文件只可读,不可写,尝试下读取和写入
? 写入数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
# print('f.readable:',f.readable()) #判断文件是否可读
# print('f.writable:',f.writable()) #判断文件是否可写
f.write('修改') #向文件内写入‘修改’
f.close()
? 运行结果:提示 not writable
io.UnsupportedOperation: not writable
Process finished with exit code 1
? 读取数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以r模式打开文件,指定到一个对象
f = open(file_path, 'r', encoding= 'utf-8')
# print('f.readable:',f.readable()) #判断文件是否可读
# print('f.writable:',f.writable()) #判断文件是否可写
# f.write('修改') #向文件内写入‘修改’
data = f.read() #读取文件内容存入data
print(data) #打印data
f.close()
? 运行结果:读取成功,打印出了文件的内容。
一二三四五六七八九十
Process finished with exit code 0
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
print('f.readable:',f.readable()) #判断文件是否可读
print('f.writable:',f.writable()) #判断文件是否可写
f.close()
? 运行结果:
f.readable: False
f.writable: True
Process finished with exit code 0
可以看到文件只可读,不可写,尝试下读取和写入
? 读取数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
# print('f.readable:',f.readable()) #判断文件是否可读
# print('f.writable:',f.writable()) #判断文件是否可写
data = f.read() #读取文件内容存入data
print(data) #打印data
f.close()
? 运行结果:提示not readable
io.UnsupportedOperation: not readable
Process finished with exit code 1
? 不允许读取,注意文件内原有的内容也被清空了。
? 写入数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以w模式打开文件,指定到一个对象
f = open(file_path, 'w', encoding= 'utf-8')
# print('f.readable:',f.readable()) #判断文件是否可读
# print('f.writable:',f.writable()) #判断文件是否可写
# data = f.read() #读取文件内容存入data
# # print(data) #打印data
f.write('修改') #向文件内写入’修改‘
f.close()
? 运行结果:写入成功,
Process finished with exit code 0
? 写入成功,但是打开文件可以发现,原文本的内容被清空了,文本内只有新写入的数据
从上面可以看出,以w模式打开文本,文件是清空后写入,慎用!!!
a模式 ---> 只写,不可读,追加内容
读取数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以a模式打开文件,指定到一个对象
f = open(file_path, 'a', encoding= 'utf-8')
print('f.readable:',f.readable()) #判断文件是否可读
print('f.writable:',f.writable()) #判断文件是否可写
data = f.read() #读取文件内容存入data
print(data) #打印data
# f.write('修改') #向文件内写入’修改‘
f.close()
? 运行结果:提示not readable
io.UnsupportedOperation: not readable
Process finished with exit code 1
? 写入数据:
file_path = 'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\数字示例.txt'
# 以a模式打开文件,指定到一个对象
f = open(file_path, 'a', encoding= 'utf-8')
# print('f.readable:',f.readable()) #判断文件是否可读
# print('f.writable:',f.writable()) #判断文件是否可写
# data = f.read() #读取文件内容存入data
# print(data) #打印data
f.write('修改') #向文件内写入’修改‘
f.close()
? 运行结果:
Process finished with exit code 0
? 查看文本可以知道,写入‘修改’添加进了文本的末尾。
以a模式打开文本,写入的内容是追加在文本的末尾。
通过rb模式读取音频,b不单独使用,一般与r/w/a配合,用来读取二级制数据。
# 打开一个视频文件,
f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','rb')
data = f.read()
print(data)
? 运行结果:
T\x00k@A\xed\x13\x18l\xf7\xff\x0e\x1f\x0e \x83\xbf\x80 \x00!\x12…………(省略)
Process finished with exit code 0
音频被解码成二级制数据,可以用来保存或其他作用。
通过r+(可写可读),w+(可写可读、清空文件),a+(可写可读)使文件可读可写
? r模式打开文件,查询文件属性:
f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r')
# f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r+')
print('f.readable:',f.readable())
print('f.writable:',f.writable())
f.close()
? 运行结果:
f.readable: True
f.writable: False
Process finished with exit code 0
? r+模式打开文件,查询文件属性:
# f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r')
f = open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','r+')
print('f.readable:',f.readable())
print('f.writable:',f.writable())
f.close()
? 运行结果:
f.readable: True
f.writable: True
Process finished with exit code 0
文件属性变为了可读可写,但是一般不建议使用,在读写过程中可能会产生不可预知的错误。
文件使用完毕后应该及时关闭,减少对系统内存的占用。
常规方法可在程序结束时使用f.close()
来关闭打开的文件,但每次都需要手动加上去,比较麻烦,
使用下面的方法可以在文件使用完毕后自动关闭打开的文件:
with open(r'D:\Program Files\Python\Learn Python\Python课程\day05\文本处理\07 镜像源更换.mp4','rb')as f:
data = f.read() #
#这个缩进内的代码文件都是打开状态
print(data) #
print(1) #这里文件自动关闭
? 运行结果:
fe\xe7\xa3f5\xaa\xabo\xfe\xb7\xffB\x…………(省略)
1
Process finished with exit code 0
程序运行到print(1)
时,文件已经关闭。
原文:https://www.cnblogs.com/liveact/p/11420959.html