设为首页 加入收藏

TOP

Python基础(七)——文件和异常
2019-07-11 12:11:16 】 浏览:34
Tags:Python 基础 文件 异常

1.1 读取整个文件

  我们可以创建一个 test.txt 并写入一些内容,使用 Python 读文件操作,读出文本内容。

1 with open(r'E:\test.txt') as file_object:
2     contents = file_object.read()
3     print(contents.rstrip()) # 可以去除末尾空格(补充:.strip() 去除头尾空格,lstrip() 去除头部空格)
4     print(file_object)

  解析

  open() 函数:Python 中无论以何种方式使用文件(读取 or 添加等),都需要先 open() 文件。在这里,我们使用 open() 函数打开文件,并将对象存储于 file_object(此对象只能在 with 代码块中使用,如想在with之外用,详见 1.3

  注意:很奇怪,没有 close() 函数,这与 Java 文件操作尤为不同。Python 允许你自己 close ,只是如果你的 close 函数因为异常,而轮不到执行,则文件不会关闭。可能会造成文件数据受损。第二种可能,close 函数过早执行,而后面还有读写操作,则会出现更多错误。幸运的是 Python 可以帮我们找到恰当的关闭时机,并且帮助我们执行关闭操作。    

  以下为输出内容,1~3 行是我的文本内容,最后一行是 file_object 对象:

1 1.2345
2    2345
3    2345
4 <_io.TextIOWrapper name='E:\\test.txt' mode='r' encoding='cp936'>

 

1.2 逐行读取

1 with open(r'E:\test.txt') as file_object:
2     for line in file_object:
3         print(line.rstrip())

  注意第三行,如果没有使用 .rstrip() 函数,则输出的每一行之间都有空格。解释:因为在文件中,每行的末尾都有一个看不见的换行符,而 print 函数还会自动加上换行符,所以,一共有两个换行符,使用 .rstrip() 函数可以消除多余的空白行。

  输出:

1 1.2345
2    2345
3    2345

 

1.3 存储各行的列表

  由于 1.1 中的 with 的限制,使用 readlines() 可破:

1 file_content = [] 2 with open(r'E:\test.txt') as file_object:
3      file_content = file_object.readlines()
4 
5 for line in file_content:
6     print(line.rstrip())

  输出:

1 1.2345
2    2345
3    2345

  如果第三行使用 readline 则只会读取一行,可实验一番。

 

2.1 写入空文件

1 with open(r'E:\test.txt', 'w') as file_object:
2      file_object.write('aaaasssddd\ndddaass')

  解析

  第一行,依旧使用 open() 函数打开文件(文件不存在则自动创建),传入参数 w,告诉 Python 以 写模式 打开文件(r 读模式,w 写模式,a 附加模式,r+ 读写模式。如果省略,默认读模式)。

  注意:Python 在 w 模式打开文件时,在返回文件对象 file_object 的时候,会清空文件内容。同时,\n 表示换行,无需写成 \\n 或者 r "\n" 等。write 不会再末尾自动加换行符,需主动加  \n

 

2.2 附加到文件

1 with open(r'E:\test.txt', 'a') as file_object:
2      file_object.write('我是附加的内容\n我也是')
3 
4 with open(r'E:\test.txt') as file_object2:
5     content = file_object2.read()
6     print(content)
1 aaaasssddd
2 dddaass我是附加的内容
3 我也是

 

3.1 异常和 try-except-else 代码块

  普通异常处理同 Java 基本一致,如下两个例子:

1 # 文件异常
2 try:
3     with open(r'E:\test3.txt') as file_object2:
4         content = file_object2.read()
5 except FileNotFoundError:
6     print('文件不存在')
7 else:
8     print(content)

  try-except-else 代码块工作原理:执行 try 中可能出错的代码快,出错则执行 except ,顺利则执行 else 代码块。

 

 

 

 

 

  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇我是怎么自学python到找到工作的.. 下一篇Python 入门(3):运算符

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目