Как вы перебираете текстовые файлы в Python? - PullRequest
0 голосов
/ 26 августа 2018

Мне нужна помощь с зацикливанием файлов:

inputa = int(input('How many days of data do you have? '))
print('Average Temperatures:')

if inputa == 1:
  lst1 = []  
  lst = []  

  for line in open('temps1.txt'):
    lst1.append(line.rstrip())
  lst = lst1      

elif inputa == 2:
  lst1 = []
  lst2 = []
  lst = []

  for line in open('temps1.txt'):
    lst1.append(line.rstrip())

  for line in open('temps2.txt'):
    lst2.append(line.rstrip())

  lst = lst1+lst2

elif inputa == 3:
  lst1 = []
  lst2 = []
  lst3 = []
  lst = []

  for line in open('temps1.txt'):
    lst1.append(line.rstrip())

  for line in open('temps2.txt'):
    lst2.append(line.rstrip())

  for line in open('temps3.txt'):
    lst3.append(line.rstrip())

lst = lst1 + lst2 + lst3

Есть ли способ зацикливания файлов.Например, я хочу, чтобы они были temps1.txt, temps2.txt, temps3.txt и так далее, в зависимости от ввода пользователя.Я также хочу иметь lst1[], lst2[], lst3[] и так далее.

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Создайте список списков вместо отдельных списков.Это помогает лучше управлять вещами.Затем просматривайте файлы и добавляйте содержимое в каждый подсписок ранее созданного списка списков.

inputa = int(input('How many days of data do you have? '))
print('Average Temperatures:')

lst = [[] for _ in range(inputa)]

for i in range(inputa):
    for line in open(f'temps{i+1}.txt'):
        lst[i].append(line.rstrip())

print(lst)  # List of lists.
print([item for sublist in lst for item in sublist])  # Flattened list.
0 голосов
/ 26 августа 2018
import glob
g=glob.glob("*") #This selects every file in directory, if you want the only the ones starting with "temps", then write "temps*"
for index, line in enumerate(g):
    print(g)
    #do stuff with files here

g - ваш список файлов.Последний цикл for - это просто цикл над ними.Помогает ли это?

модификация после комментариев

это работает для меня:

import glob
g=[]
for x in range(inputdata):
    select = "*"+str(x)
    exp_g=glob.glob(select)
    g.extend(exp_g)
g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...