Python: Glob читает только один файл вместо двух - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть два разных файла .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())

IМне нужно, чтобы мои выходные данные прочитали оба файла, а также чтобы словарь начал новую строку, например:

'Science/Biology': '200'
'Math/Calculus': '342'
'Psychology': '324'
....

Надеюсь, мой вопрос имеет смысл.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...