2017-09-24 59 views
1

我在文件夾中有'n'「.txt」文件,我想在同一時間打開它們並讀取每個文件的每一行,然後每隔一行。 。同時讀取多個文件的每一行

我的文件是這樣寫的:

0 
1 
0 
1 
1 
0 
0 
0 

我用

file = fileinput.input(files=("text_{}.txt".format(i))) 
for line in file: 
    for ch in line: 
     print file.readline() 

感謝

+0

問題是什麼? – wwii

+0

我該怎麼做? – amintou

+1

按照給出的示例練習[教程](https://docs.python.org/3/tutorial/index.html#the-python-tutorial)。最終你會得到解決你的問題的想法。嘗試一些這些想法;如果您遇到困難,請四處搜尋,看看是否有人解決了這個問題;回來問問自己無法解決的問題 – wwii

回答

1

如果你不想讀在內存中的文件的內容,

FILES = ['1.txt', '2.txt', '3.txt'] 

if __name__ == '__main__': 
    file_handles = {filename: open(filename, 'r') for filename in FILES} 
    while file_handles: 
     for filename, file in file_handles.items(): 
      line = next(file, None) 
      if line is not None: 
       line = line.rstrip('\n') 
       print(line) 
      else: 
       file.close() 
       file_handles.pop(filename) 
1

ÿ您可以一次打開多個文件,並輕鬆將它們存儲在數組中以迭代並執行'readline'。記住要關閉所有打開的文件也很重要,因爲它可能會成爲依賴於「with」語句爲您關閉它們的習慣(這對於此特定場景來說並不實用)。示例代碼:

filenames = ["File1.txt", "File2.txt"] 
file_objs = [] 

for name in filenames: 
    file_objs.append(open(name, "r")) 

while file_objs: 
    for file in file_objs: 
     line = file.readline() 
     if not line: 
      file_objs.pop(file_objs.index(file)).close() 
     else: 
      ... 
相關問題