- 文件的打开与关闭
- 文件的打开
python中打开文件使用open("路径/filename.txt")函数,括号中写文件路径及名称,文件与程序位于同一目录中,则只能指定其名称,例如:
myfile = open("filename.txt")
- 可以向open函数添加第二个参数来指定打开文件的模式:
添加“r”表示在读取模式下打开,这是默认设置;
添加“w”表示写入模式,用于重写文件的内容;
添加“a”表示追加模式,用于将新内容添加到文件末尾;
添加“b”表示将以二进制模式打开它,该模式用于非文本文件(如图像和声音文件)。例如:
#write mode
open("filename.txt", "w")
#read mode
open("filename.txt", "r")
open("filename.txt")
#binary write mode
open("filename.txt", "wb")
- 文件的关闭
在对一个文件打开、操作完成后,需要用close函数关闭文件,例如:
file = open("filename.txt", "w")
#do stuff to the file
file.close()
- 文件的读取
- 使用open函数打开文件后,可用read函数读取文件中的内容,例如:
file = open("filename.txt", "r")
cont = file.read()
print(cont)
file.close()
结果将输出文件名为filename中的全部内容。
- 读取文件中部分内容
要只读取一定数量的文件,可以提供一个数字作为读取函数的参数,这决定了应读取的字节数,没有参数则只读返回文件的其余部分。例如:
file = open("filename.txt", "r")
print(file.read(16))
print(file.read(4))
print(file.read(4))
print(file.read())
file.close()
- 在读取完文件中的所有内容之后,如果试图从该文件进一步读取内容,将会返回一个空字符串,因为这正从文件末尾进行读取,例如:
file = open("filename.txt", "r")
file.read()
print("Re-reading")
print(file.read())
print("Finished")
file.close()
输出结果为:
Re-reading
Finished
- 要检索文件中的每一行,可以使用readlines方法返回一个列表,其中每个元素是文件中的一行,例如:
file = open("filename.txt", "r")
print(file.readlines())
file.close()
输出结果为:
['Line 1 text \n', 'Line 2 text \n', 'Line 3 text']
也可以使用for循环迭代读取:
file = open("filename.txt", "r")
for line in file:
print(line)
file.close()
输出结果为:
Line 1 text
Line 2 text
Line 3 text
- 数据的写入
- 使用write方法可将字符串写入文件中,例如:
file = open("newfile.txt", "w")
file.write("This has been written to a file")
file.close()
file = open("newfile.txt", "r")
print(file.read())
file.close()
w表示写入,但如果该文件不存在,也会新建该文件,输出结果为:
This has been written to a file
- 如果以写入模式打开文件,则该文件内的数据将被删除,例如:
file = open("newfile.txt", "r")
print("Reading initial contents")
print(file.read())
print("Finished")
file.close()
file = open("newfile.txt", "w")
file.write("Some new text")
file.close()
file = open("newfile.txt", "r")
print("Reading new contents")
print(file.read())
print("Finished")
file.close()
输出结果为:
Reading initial contents
some initial text
Finished
Reading new contents
Some new text
Finished
- write方法返回字符的数量,例如:
msg = "Hello world!"
file = open("newfile.txt", "w")
amount_written = file.write(msg)
print(amount_written)
file.close()
输出结果为:
12
- 为了保证文件使用完毕后被彻底关闭,避免浪费内存资源,可用一下代码保证文件被彻底关闭:
try:
f = open("filename.txt")
print(f.read())
finally:
f.close()
- 还可使用with语句关闭文件,with语句结束后文件即被关闭:
with open("filename.txt") as f:
print(f.read())
网友评论