目录
一、读取整个文件
二、文件路径
相对文件路径
绝对文件路径
三、逐行读取文件内容
四、创建一个包含文件各行内容的列表
——更广泛使用已读取文档内的数据
五、使用文件的内容
要读取某个文件,首先的创建一个包含几行文本的文件。步骤如下:
1.先在你当前执行的文件所在目录创建一个文本文件,文本文件里的内容随意。
例如:
当前执行文件为work_1day,新建文本文件pi_digits。文本文档内容自定义,随便写点什么。
2.在当前执行文件中输入以下代码:
with open("pi_digits.txt") as file_object:
numbers = file_object.read()
print(numbers)
'''文件必须先打开才能访问,文件打开后需要及时关闭,否则会导致文件中的数据丢失或受损。文件的关闭时机,人为不好把握:文件关闭太早,后续使用该文件将无法访问。
with关键词可以让python妥善地打开和关闭文件。
open()是能够打开文件的函数,使用时只需向其传递一个参数(需要打开的文件的文件名)即可。
'''
3.在pycharm中点击运行。运行结果(这里我文档文件中写的是圆周率前2位):
'''
read()是读取文件内容的函数,文件读取完毕后会自动返回一个空字符串。故运行结果多了一空行。
rstrip()方法可删除多余的空行。
'''
文件路径有两种,一为相对文件路径,二为绝对文件路径。前者做法比较简单。
1.相对文件路径:如一程序文件存储在(pyton_work)文件夹中,有一文本文件夹(text_files)和该程序文件同处于(python_work)同一文件夹中。文本文件夹(text_files)用于存储程序文件操作的文本文件。如:
使用相对路径打开文件,可以输入如下代码(图中'text_files/file_loca.txt'为相对路径。):
with open('text_files/file_loca.txt') as files_object:
OO = files_object.read()
print(OO)
运行可打开文件内容。
2.绝对文件路径:存储程序操作文本文件的文件夹(text_files)不在(python_work)文件夹中,及不与当前的程序文件存在于同一文件夹(python_work)目录下:
文件夹text_files不在文件夹pyton_work ,而在其他位置:
这种情况下想要打开text_files文件夹中的文本文档,就要用绝对文件路径。可以这样写代码:
file_path = '/python/text_files/file_loca.txt'
with open(file_path) as file_object:
weath = file_object.read()
print(weath)
同样的,运行可查看文档文件内容。这里的绝对路径不用把处于某盘写上——这里的绝对路径写成"/F:/python/text_files/file_loca.txt"是会被python视为无效参数的。
有时候需要读取文件中特定的信息,可以对文件对象进行for循环遍历:
file_name = 'pi_digits.txt'
with open(file_name) as file_object:
for line in file_object:
print(line.rstrip())
运行结果(输出内容于你编写的一致):
readlines()
方法会一次性读取所有行,并返回一个列表,每个元素为一行文本。这样便于在with模块外,也能使用这些变量(lines)。下面是一个使用readlines()
的示例:
file_name = 'pi_digits.txt'
with open(file_name, 'r') as f:
lines = f.readlines()
for line in lines:
print(line.strip())
运行结果:
在逐行读取文件时,最好使用with
语句来打开文件,以确保文件在使用完后能够被正确关闭,而不会出现文件被占用的情况。
文件的数据通过列表存入运行内存中之后,就可以用任何方式使用这些数据了。
例如:
file_path = '/Python/text_files/file_loca.txt'
with open(file_path, 'r') as f:
lines = f.readlines()
O_string = ''
for line in lines:
O_string += line.strip()
print(O_string)
print(len(O_string))
strip()
方法会同时删除开头和结尾的空格,而rstrip()
方法仅删除结尾的空格。
需要注意的是,这两个方法返回的均是删除了指定字符之后的新字符串,原始字符串并没有被修改。如果需要改变原始字符串,可以将这些方法应用于字符串的副本并重新赋值。
简单使用files_loca.txt存储的圆周率数据。运行结果:
值得注意的是,读取文本文件时,python将其所有文本内容解读为字符串。如果有数值使用的需求,别忘记强制类型转换,换成你所需要的数据类型哦~