Python从文件中读取数据的方法

  介绍

这篇文章给大家分享的是有关Python从文件中读取数据的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

<强> 1。读取整个文件

要读取文件,首先来创建一个文件:

然后打开并读取这个文件,再将其内容显示到屏幕上:

file_reader.py   with 开放(& # 39;pi_digits.txt& # 39;), as  file_object:   ,,,contents =, file_object.read ()   ,,,print(内容)

解读上述代码:

open ()→要以任何方式使用文件,都首先得打开文件,这样才能访问它,此时就需要用到函数()开放,该函数只接受一个参数:要打开文件的名称,同时返回表示文件的对象。

:不再需要访问文件后调用关闭()将其关闭。

阅读()→读取文件中的全部内容。

运行结果:

3.1415926535   ,,8979323946   ,2643383278,

<强> 2。文件路径

要让python打开不与程序文件位于同一目录中的文件,需要提供文件路径,让python到系统的特定位置去查找。

文件路径的表示:

1。相对路径→文件相对于当前运行程序所在的目录.eg。在程序所在文件夹C: \ yxf \ \用户桌面\ python_pycharm新建一个文件夹text_file用于存储文件pi_digits。txt,此时就需要这样编写代码:

with 开放(& # 39;text_files \ pi_digits.txt& # 39;), as  file_object:

2。绝对文件路径→文件所在完整路径。绝对路径比相对路径更长,故可将路径存储在一个变量中,再将变量传递给开放():

file_path =, " # 39; C: \ yxf \ \用户桌面\ python_pycharm \ text_files \ pi_digits.txt& # 39;   with 开放(file_path), as  file_object:

由于文件路径中使用的是反斜杠,在python中被视为转义字符,故需要在开头的单引号前加上r。

<强> 3。逐行读取

每次以一行的方式检查文件:

file_name =, & # 39; pi_digits.txt& # 39;   with 开放(file_name), as  file_object:   ,,,for  line 拷贝file_object:   ,,,,,,,印刷(线)

,运行结果:

3.1415926535   ,,8979323946   2643383278才能

通过对文件对象使用的循环来遍历文件中的每一行,但运行结果显示的每一行后边多了空白行,这是为什么呢?文件中每行的末尾都有一个看不见的换行符,而打印语句也会加上一个换行符。为消除这些空白行,可在打印语句中使用rstrip ():

打印(line.rstrip ())

这样输出与文件内容就完全相同了。

<强> 4。创建一个包含文件各行内容的列表

file_name =, & # 39; pi_digits.txt& # 39;   with 开放(file_name), as  file_object:   ,,,lines =, file_object.readlines ()   for  line 拷贝:   ,,,print (line.rstrip ())

方法readline():从文件中读取每一行,并将其存储在列表中。

<强> 5。使用文件的内容

file_name =, & # 39; pi_digits.txt& # 39;   with 开放(file_name), as  file_object:   ,,,lines =, file_object.readlines(),,,, #,将文件内容存储在列表中   时间=pi_string  & # 39; & # 39;,,,, #,新建一个空字符串   for  line 拷贝:   ,,,pi_string =, pi_string  +, line.rstrip(),,,, #,删除空白行并转换为字符串   打印(pi_string),,,, #,打印字符串   print (len (pi_string)),,,, #,打印字符串长度

运行结果:

3.1415926535,,8979323946,,2643383278   36

,运行结果中包含了位于每行左边的空格,为删除这些空格,可使用带()而不是rstrip(),运行可得:

3.141592653589793239462643383278   32

<>强6。包含一百万位的大型数据

一百万位的文件下载过慢,就复制使用了其中的一小部分,并打印到小数点后的50位:

file_name =, & # 39; pi_xx_digits.txt& # 39;   with 开放(file_name), as  file_object:   ,,,lines =, file_object.readlines(),, #,将文件内容存储在列表中   时间=pi_string  & # 39; & # 39;,, #,新建一个空字符串   for  line 拷贝:   ,,,pi_string =, pi_string  +, line.strip(),, #,删除空白行并转换为字符串   print (pi_string[: 52]),, #,打印字符串   print (len (pi_string)),, #,打印字符串长度

Python从文件中读取数据的方法