当前位置: 首页 > 图灵资讯 > 行业资讯> Python如何从文件中读取数据

Python如何从文件中读取数据

发布时间:2025-10-31 16:18:04

从文件中读取数据

1. 阅读整个文件

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

然后打开并读取文件,然后在屏幕上显示其内容:

file_reader.py
withopen('pi_digits.txt')asfile_object:
contents=file_object.read()
print(contents)

解释上述代码:

open( ) -> 为了以任何方式使用文件,您必须首先打开文件,以便访问它。此时,函数open()只接受一个参数:打开文件的名称,并返回表示文件的对象。

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

read( ) ->阅读文件中的所有内容。

运行结果:

3.1415926535
8979323946
2643383278

2. 文件路径

要使python打开不与程序文件位于同一目录中的文件,需要提供文件路径,使python在系统的特定位置进行搜索。

文件路径的表示:

1. 相对路径 -> 与当前操作程序所在的目录相比,文件。eg. 将C夹在程序所在文件中:\Users\yxf\Desktop\python_pycharm新建文件夹text_file存储文件pi__filedigits.txt,此时需要这样编写代码:

withopen('text_files\pi_digits.txt')asfile_object:

2. 绝对文件路径 -> 文件所在的完整路径。绝对路径比相对路径长,因此可以将路径存储在变量中,然后将变量传递给变量 open( ):

file_path=r'C:\Users\yxf\Desktop\python_pycharm\text_files\pi_digits.txt'
withopen(file_path)asfile_object:

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

相关推荐:Python视频教程

3. 逐行读取

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

file_name='pi_digits.txt'
withopen(file_name)asfile_object:
forlineinfile_object:
print(line)

运行结果:

3.1415926535
8979323946
2643383278

文件中的每一行都是通过使用for循环对文件对象进行的,但是运行结果显示的每一行后面都有空白行。为什么?文件中每行末尾都有一个看不见的换行符,print语句中也会添加一个换行符。为了消除这些空白行,可以在print语句中使用 rstrip( ):

print(line.rstrip())

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

4. 创建包含文件各行内容的列表

file_name='pi_digits.txt'
withopen(file_name)asfile_object:
lines=file_object.readlines()
forlineinlines:
print(line.rstrip())

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

5. 使用文件的内容

file_name='pi_digits.txt'
withopen(file_name)asfile_object:
lines=file_object.readlines()#将文件内容存储在列表中
pi_string=''#新建空字符串
forlineinlines:
pi_string=pi_string+line.rstrip()#删除空白行并将其转换为字符串
print(pi_string)#打印字符串
print(len(pi_string))#打印字符串长度

运行结果:

3.141592653589793239462643383278
36

运行结果包括位于每行左侧的空间。为了删除这些空间,可以使用 strip() 而不是 rstrip(),可以操作:

3.141592653589793239462643383278
32

6. 大数据包含100万人

下载100万个文件太慢,复制使用其中一小部分,打印到小数点后的50个:

file_name='pi_xx_digits.txt'
withopen(file_name)asfile_object:
lines=file_object.readlines()#将文件内容存储在列表中
pi_string=''#新建空字符串
forlineinlines:
pi_string=pi_string+line.strip()#删除空白行并将其转换为字符串
print(pi_string[:52)#打印字符串
print(len(pi_string))#打印字符串长度

运行结果:

3.14159265358979323846264338327950288419716939937510
1483

从运行结果可以看出,保存小数点后的1481位文件 pi_xx_digits.txt 中。

7. 圆周率包含你的生日吗?

自己的生日是否包含在圆周率值的前1483位:

file_name='pi_xx_digits.txt'
withopen(file_name)asfile_object:
lines=file_object.readlines()
pi_string=''
forlineinlines:
pi_string=pi_string+line.strip()
birthday=input('Enteryourbirthday,intheformmmddyy:')
ifbirthdayinpi_string:
print('Yourbirthdayapearsinthefirst1483digitsofi!')
else:
print('Yourbirthdaydoesnotappearsinthefirst1483digitsofpitsofpit.')

相关文章

Python如何从文件中读取数据

Python如何从文件中读取数据

2025-10-31
Python sorted函数及用法

Python sorted函数及用法

2025-10-30
Python如何用json模块存储数据

Python如何用json模块存储数据

2025-10-30
Python如何传递任意数量的实参

Python如何传递任意数量的实参

2025-10-30
Python中的返回值是什么

Python中的返回值是什么

2025-10-30
Python if else条件语句详解

Python if else条件语句详解

2025-10-30