2017-06-13 164 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>