10.1从文件中读取数据

10.1.1 读取整个文件

首先创建一个文件如:pi_digits.txt

10.1从文件中读取数据

下面的程序可以读取该文件,再将其内容显示到屏幕上:

1 with open("pi_digits.txt") as file_object:
2      contents=file_object.read()
3      print(contents)

运行结果:

>>> 
================== RESTART: F:/python学习/10/10.1/file_reader.py =================
3.1415926535
  8979323846
  2643383279
>>> 

说明:

1.使用方法read()读取文件(该文件如果与程序文件在同一目录下,直接使用文件名,否则需加绝对路径)。

2.关键字 with 在不再需要访问文件后将其关闭(你只管打开文件,并在需要时使用它,python自会在合适的时候自动将其关闭。)

3.使用关键字with与使用close()方法比较,避免了因为程序bug而导致close()语句未能执行文件不能关闭,导致文件丢失或受损,或程序中过早的调用close()语句,当需要调用文件时它已经关闭的情况。

 

10.1.2 文件路径

可以将需要读取的文件的准确位置(即绝对路径)告诉python,这样就不用关心当前 运行程序存储在什么地方了。

绝对路径通常比相对 路径更长,因此可以将其存储在一个变量中,再将该变量传递给open()会有所帮助。

file_path="f:/python学习/10/10.1/py_digist.txt"
with open(file_path) as file_object:

通过使用绝对路径,可读取系统任何地方的文件。

 

10.1.3 逐行读取

要以每次一行的方式检查文件,可对文件对象使用for 循环:

filename="pi_digits.txt"
with open(filename) as file_object:
     for line in file_object:
          print(line)

运行结果:

>>> 
================ RESTART: F:/python学习/10/10.1/file_readlines.py ================
3.1415926535

  8979323846

  2643383279
>>> 

说明:

1.第一行,把需要打开的文件名存储在一个变量中

2.使用with关键字让python负责妥善的打开和关闭文件。

问题:每打印一行时,发现多出一个空行。

原因:因为在这个文件中,每一行末尾都有一个看不见的换行符,而print()语句也会加上一个换行符,因此每行末尾都有两个换行符:一个来自文件,另一个来自print语句

解决方法:可以在print语句中使用rstrip()

优化后的代码如下:

filename="pi_digits.txt"
with open(filename) as file_object:
     for line in file_object:
          print(line.rstrip())

运行结果如下:

>>> 
================ RESTART: F:/python学习/10/10.1/file_readlines.py ================
3.1415926535
  8979323846
  2643383279
>>> 

 

10.1.4 创建一个包含文件各行内容的列表

 

10.1从文件中读取数据

上一篇:下载工具的比较


下一篇:Netplan网络配置工具的学习