语义变化检测代码-01-读取txt文档
Background
读取txt文档这个工作并不是会经常的遇到,但也不排除一些数据的组织过程中,会设置一个txt文档来存储所有数据的名称之类的。
此时需要逐行读取txt文档的内容。
读取的文档会被放置在列表里,每一行是一个元素。
代码
file_path = r"D:\test_txtFile.txt"
f = open(file_path)
data = f.read().splitlines()
f.close()
代码注释
# 对单个文件,首先使用文件的绝对路径来指向(路径前的r是必要的)
# 这里的路径需要改成自己文件的路径
# 需要注意:文件在被读取前尽量不要被一些应用程序打开
file_path = r"D:\test_txtFile.txt"
# 打开txt文档
f = open(file_path)
# read/readline/readlines三种常见的读取
# 一般都是按行读取所有信息(read)
# 每一行不保留换行符(splitlines)
# 因此直接使用下式:
data = f.read().splitlines()
# 关闭文件,不关闭的话倘若对原文档修改可能会提示“操作无法完成,因为已经在Python程序中打开”等提示
f.close()
# txt文件中每一行都以一个元素的形式存储在列表data中
代码扩展:批量添加txt文档
往往我们需要操作许多的txt文档。典型的,可能一个文件名的.txt文档,其内部存储的是一行其类别的描述。
import glob
root_path = r"D:\txt_files\*.txt"
files_path = glob.glob(root_path)
all_data = []
for file in files_path:
f = open(file, encoding='utf-8')
data = f.read().splitlines()
f.close()
all_data.append(data)
代码注释
# 导入glob库,用于将文件夹下所有的txt文档的绝对路径存到一个列表里
import glob
# \*.txt是遍历条件,前面的是文件夹的目录
root_path = r"D:\txt_files\*.txt"
# files_path中会存储文件夹下所有文件的绝对路径
files_path = glob.glob(root_path)
# 新建一个列表,用于保存所有文件的内容
all_data = []
for file in files_path:
f = open(file, encoding='utf-8')
data = f.read().splitlines()
f.close()
# 因为每次运行for循环,data都会被更新
# 利用append()逐个在空列表里添加元素
# 这就是之前新建all_data列表的意义
all_data.append(data)