Python:Glob只读取一个文件,而不是两个

时间:2019-04-11 16:24:07

标签: python regex python-3.x file glob

我有两个不同的.txt文件。我正在尝试阅读并将其变成字典。我注意到,在具有的功能上,它仅读取文件之一。我认为glob至少会通读所有这些内容。

当我只是尝试读取文件而不将它们变成字典时,此代码有效。它从两个.txt文件中打印出内容

data = ""
for file in glob.glob(".txt"):
    with open(file) as filenames:
        data = data + filenames.read()
return data

当我尝试使用某种正则表达式模式读取文件以读取某些字符串时,它只能识别其中一个文件。这是我的两个文件和功能:

File1.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

File2.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'
....

我希望我的问题有意义。谢谢!

0 个答案:

没有答案