循环遍历文件夹中的多个 .txt 文件(使用 glob)并将它们合并
Loop through multiple .txt files in the folder (using glob) and combine them
我是 Python 的新手,有一项任务正在部分完成,希望得到一些支持。
任务:遍历数据文件夹中的多个 .txt 文件(使用 glob)并将它们组合成一个字典
对于每个文件,执行以下操作:
- 打开它
- 像上一个任务一样将数据提取到字典中
- 将词典添加到持有者列表中
到目前为止,这是我的代码,但输出为空白
from glob import glob
import os.path
# make an empty list to hold the data
holder = []
key = ["id","age","gender"]
# for each text file in the data folder,
for filepath in glob("data/*.txt"):
#load the file
with open(filepath, 'r') as file:
data = file.read().split()
dictionary = dict(zip(key, file))
holder.append(dictionary)
print(holder)
输出显示:
[{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{ }、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}]
以下是其中 1 个文本文件的样子:
这是更新代码的另一张图片,它在布局方面几乎就在那里,但每个词典都有相同的数据,它似乎并没有遍历所有文件。
我假设你想做这样的事情:
from glob import glob
import os.path
# make an empty list to hold the data
holder = []
key = ["id","age","gender"]
# for each text file in the data folder,
for filepath in glob("data/*.txt"):
#load the file
with open(filepath, 'r') as file:
rows = file.read().split("\n")
for row in rows:
data = row.split(",")
holder.append(dict(zip(key, data)))
print(holder)
因此您必须以某种方式遍历行并将数据附加到持有者。
因此 for row in file:
也是可能的,但在这种情况下,您还必须处理 eol(\n 至少如果您将其视为文本文件)。
更新
使用新信息,我认为您只需将 zip 函数中的 data Variable
替换为行。
...
#load the file
with open(filepath, 'r') as file:
rows = file.read().split("\n")
#for row in rows:
#data = row.split(",")
holder.append(dict(zip(key, rows)))
print(holder)
我是 Python 的新手,有一项任务正在部分完成,希望得到一些支持。
任务:遍历数据文件夹中的多个 .txt 文件(使用 glob)并将它们组合成一个字典
对于每个文件,执行以下操作:
- 打开它
- 像上一个任务一样将数据提取到字典中
- 将词典添加到持有者列表中
到目前为止,这是我的代码,但输出为空白
from glob import glob
import os.path
# make an empty list to hold the data
holder = []
key = ["id","age","gender"]
# for each text file in the data folder,
for filepath in glob("data/*.txt"):
#load the file
with open(filepath, 'r') as file:
data = file.read().split()
dictionary = dict(zip(key, file))
holder.append(dictionary)
print(holder)
输出显示: [{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{ }、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}]
以下是其中 1 个文本文件的样子:
这是更新代码的另一张图片,它在布局方面几乎就在那里,但每个词典都有相同的数据,它似乎并没有遍历所有文件。
我假设你想做这样的事情:
from glob import glob
import os.path
# make an empty list to hold the data
holder = []
key = ["id","age","gender"]
# for each text file in the data folder,
for filepath in glob("data/*.txt"):
#load the file
with open(filepath, 'r') as file:
rows = file.read().split("\n")
for row in rows:
data = row.split(",")
holder.append(dict(zip(key, data)))
print(holder)
因此您必须以某种方式遍历行并将数据附加到持有者。
因此 for row in file:
也是可能的,但在这种情况下,您还必须处理 eol(\n 至少如果您将其视为文本文件)。
更新
使用新信息,我认为您只需将 zip 函数中的 data Variable
替换为行。
...
#load the file
with open(filepath, 'r') as file:
rows = file.read().split("\n")
#for row in rows:
#data = row.split(",")
holder.append(dict(zip(key, rows)))
print(holder)