2013-03-12 173 views
-5

如果我在一个目录C中有多个文件,并且我想写一个代码读取(自动)所有文件并处理每个文件,然后为每个输入文件编写一个输出文件。读取多个文件并写入多个输出文件

例如,在目录C I具有以下文件:

aba 
cbr 
wos 
grebedit 
scor 

提示:这些文件是没有明显的扩展

然后该程序读取这些文件逐一处理,然后写输出在目录中:

aba.out 
cbr.out 
wos.out 
grebedit.out 
scor.out 
+2

[你有什么尝试?](http://whathaveyoutried.com/) – millimoose 2013-03-12 19:23:42

+0

我没有任何想法如何做到这一点。 – Peace 2013-03-12 19:24:33

+1

@ user2152825 - 打破你的问题,思考你现在怎么做。你知道如何获得目录中的文件列表吗?你知道如何从一个文件读取数据吗?你知道如何建立输出文件的名称吗?你知道如何写入一个输出文件吗?你知道如何构建一个循环吗?尝试其中一项任务,并在遇到困难时向我们寻求具体帮助。如果你不知道如何去做这些事情,请尝试阅读Python教程,例如[this one](http://docs.python.org/2/tutorial/)。 – 2013-03-12 19:27:24

回答

2

请允许我引导您到tutorial。一般来说,当你对文件IO感到满意时,这里有一个基本的工作流程供你展开。

def do_something(lines): 
    output = [] 
    for line in lines: 
     # Do whatever you need to do. 
     newline = line.upper() 
     output.append(newline) 
    return '\n'.join(output) # 

listfiles = ['aba', 'cbr', 'wos', 'grebedit', 'scor'] 

for f in listfiles: 
    try: 
     infile = open(f, 'r') 
     outfile = open(f+'.out', 'w') 

     processed = do_something(infile.readlines()) 

     outfile.write(processed) 

     infile.close() 
     outfile.close() 
    except: 
     # Do some error handling here 
     print 'Error!' 

如果你需要从所有文件建立在一定的目录列表,使用os模块。

import os 
listfiles = os.listdir(r'C:\test') 
+0

如果有500个文件,我想自动读取它们? – Peace 2013-03-12 19:32:40

+0

@ user2152825如果你想自动读取目录中的所有文件,你应该把它写在你的问题中,而不是在评论他人的答案。不过,我已经编辑了我的答案。 – 2013-03-12 19:37:39

相关问题