Exceptions & Files(四)

  1. 文件的打开与关闭
  • 文件的打开
    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()

  1. 文件的读取
  • 使用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

  1. 数据的写入
  • 使用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())

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、流的概念和作用。 流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输...
    布鲁斯不吐丝阅读 13,435评论 2 95
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,890评论 0 17
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,459评论 18 399
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 9,712评论 4 16
  • 我的宝贝,你四岁了。回首这一千多个日夜,忽觉惶恐,时间走的如此的飞快而轻盈,让我还来不及参与你的成长和蜕变...
    Huyue1988阅读 4,088评论 4 2

友情链接更多精彩内容