python - Python:Glob 只读取一个文件而不是两个
问题描述
我有两个不同的 .txt 文件。我正在尝试阅读并将它们变成字典。我注意到在我拥有的功能上,它只读取其中一个文件。我认为 glob 至少会通读所有这些。
当我只是尝试读取文件而不将它们变成字典时,此代码有效。它从两个 .txt 文件中打印出内容
data = ""
for file in glob.glob(".txt"):
with open(file) as filenames:
data = data + filenames.read()
return data
当我尝试使用某些正则表达式模式读取文件以读取某些字符串时,它只能识别其中一个文件。这是我的两个文件和功能:
文件1.txt
file.py Marvel/GuardiansOfGalaxy 300 1
file.py DC/Batman 504 1
file.py GameOfThrones 900 0
file.py DC/Superman 200 1
file.py Marvel/CaptainAmerica 342 0
文件2.txt
file.py Science/Biology 200 1
file.py Math/Calculus 342 0
file.py Psychology 324 1
file.py Anthropology 234 0
file.py Science/Chemistry 444 1
功能:
import glob
import re
def read():
pattern = re.compile(r"file\.py (.+).*? (\d+) \d+")
data_files = []
for file in glob.glob("*.txt"):
with open(file, 'r') as filenames:
data_files = dict(pattern.findall(filenames.read()))
return data_files
print(read())
我需要我的输出来读取这两个文件,并使字典输出开始一个新的行,如:
'Science/Biology': '200'
'Math/Calculus': '342'
'Psychology': '324'
....
我希望我的问题是有道理的。谢谢!
解决方案
推荐阅读
- r - 如何在R中的数字之间添加逗号?
- vagrant - 如何修复 vagrant 中的“无法检索镜像列表”错误?
- c - 我可以在 C 中用 NULL 初始化字符串吗
- java - 从全文中检索字符串的一部分
- php - 重力形式 - 基于数据库条目的下拉列表
- unit-testing - 如何验证在 Kotlin 中调用了类扩展函数?
- java - 如何禁用自动连接到已保存的 Wi-Fi 网络
- here-api - Here API:使用 Android sdk 获取错误的公交路线信息
- selenium - 如何在 Appium 中自动化视频播放器(HTML5)的 Leep 搜索/阅读?
- umbraco - 无法获取 IContent 的子级