2017-06-13 77 views
-2

我有多個文件,名稱如file00001,.....,file00111,..... file01555等等。我想在Python中以增量讀取它們。什麼是最好的方式來做到這一點?最初,我使用創建時間以增量順序讀取它們,但不幸的是,當我將這些文件傳輸到另一臺計算機時,文件創建時間和名稱不再匹配。所以這段代碼不起作用。我的代碼是這樣的。一些命令是特定於軟件的,像pymol,cmd,但我認爲其餘的代碼是相當一般的。我很抱歉,如果這個問題沒有得到妥善的解答,但我對python非常新手,編程不是我的專業。它幫助我更有效地完成工作,這就是爲什麼我正在嘗試它。如何在python中使用增量文件名讀取文件?

My code

感謝 DHIRAJ

+3

歡迎的StackOverflow!你到目前爲止嘗試過什麼嗎? StackOverflow不是一個免費的代碼寫入服務,並期望你[**嘗試首先解決你自己的問題**](http://meta.stackoverflow.com/questions/261592)。請更新您的問題以顯示您已經嘗試的內容,在[**最小,完整和可驗證的示例**](http://stackoverflow.com/help/mcve)中展示您面臨的特定問題。有關詳細信息,請參閱[**如何提出良好問題**](http://stackoverflow.com/help/how-to-ask),並參加[**遊覽**](http:// –

+0

請將您的代碼添加爲文本而不是圖片,以使其可以被搜索引擎複製/粘貼和索引。 –

回答

0

你應該嘗試這樣的事情

import glob 
path = ''#your path 
files = glob.glob(path) 
for name in files: 
    with open(name) as f: 
      for line in f: 
       print(line.split()) 

你可以閱讀更多關於水珠,看看如何調整它爲您的問題glob

2

如果你想馬上對文件做些什麼,然後繼續:

def get_files(): 
    MAX_FILE_NUM = 100 #change 
    fmat = lambda x: '{:05}'.format(x) 

    for i in range(1, MAX_FILE_NUM + 1): 
     path = 'file' + fmat(i) 
     new_file = open(path, 'r') 
     # Do something with the new_file object... 

get_files() 

如果您希望能夠從函數獲得一個文件在同一時間:

def get_files(): 
    MAX_FILE_NUM = 100 #change 
    fmat = lambda x: '{:05}'.format(x) 
    for i in range(1, MAX_FILE_NUM + 1): 
     path = 'file' + fmat(i) 
     new_file = open(path, 'r') 
     yield new_file 

files = get_files() 

print(next(files)) #<file object 1> 
print(next(files)) #<file object 2>