目录
1 打开文件
1.1 文件路径
程序文件所在路径为“当前路径”。
(1)如果文件位于“当前路径”,打开时无需指明路径,只需指明文件名称。
(2)如果文件位于“当前路径”的下层路径,打开时需要指明:从“当前路径”的文件夹开始的,文件所在路径。
例如:“当前路径”是/work文件夹,文件位于work文件夹下的file文件夹中,名字叫myFile.txt。则打开文件需要指明的路径是file/myFile.txt。程序先在work文件夹中,找到file文件夹,再到file文件夹中去找指定文件
(3)如果文件所在位置,不在“当前路径”的下层路径,打开时需要指明全路径。
1.2 打开‘中文’文件
需要查看文件编码,然后在encoding中使用该编码。
import codecs
with codecs.open('got_from_python.txt','r',encoding='utf-8') as file_object:
content = file_object.read()
print(content.strip())
1.3 with打开
使用with结构打开文件,在打开后不需要自行关闭文件,with会在合适的时机关闭,确保文件的安全。
使用with结构打开的文件数据,只能在with结构内部使用,如需在外部使用,需要在with结构内将文件内容拷贝一份,然后在外部使用该拷贝。
1.3 打开模式
没有指定的情况下,使用‘只读’打开。
'r'——只读
'w'——只写,打开后文件旧内容被清空,如果指定文件不存在就创建一个新文件。
'a'——附加,打开后新内容添加到旧内容之后,如果指定文件不存在就创建一个新文件。
'r+'——读写
1.4 打开异常
如果要打开的文件不存在,Python会抛出FileNotFoundError。此时为了保证程序不崩溃,需要使用try-except-else结构。代码如下:
lines = []
try:
with codecs.open('alice_python.txt','r',encoding='utf-8') as file_object:
for line in file_object:
lines.append(line)
except FileNotFoundError:
print(f'文件alice_python.txt没有找到。')
else:
for line in lines:
print(line.strip())
2 读取文件
2.1 一次性读取全部,read()
import codecs
with codecs.open('got_from_python.txt','r',encoding='utf-8') as file_object:
content = file_object.read()
print(content.strip())
2.2 遍历文件,每次读取一行
import codecs
with codecs.open('got_from_python.txt','r',encoding='utf-8') as file_object:
for line in file_object:
print(line.strip())
2.3 with外使用文件内容
import codecs
lines = []
with codecs.open('got_from_python.txt','r',encoding='utf-8') as file_object:
for line in file_object:
lines.append(line)
for line in lines:
print(line.strip())
3 写文件
文件打开模式使用'w'、'a'或者'r+'。
import codecs
with codecs.open('life_python.txt','w',encoding='utf-8') as file_object:
file_object.write('编程是生活中的光。')
标签:文件,Python,object,file,codecs,line,打开,小结
From: https://blog.csdn.net/wanghuizheng/article/details/136675471