如何打开文件夹中的每个文件?

我有一个python脚本parse.py,它在脚本中打开一个文件,比如file1,然后做一些事情可能会打印出总字符数.

filename = 'file1'
f = open(filename, 'r')
content = f.read()
print filename, len(content)

现在,我使用stdout将结果定向到我的输出文件 – 输出

python parse.py >> output

但是,我不想手动执行此文件,有没有办法自动处理每个文件?喜欢

ls | awk '{print}' | python parse.py >> output 

那么问题是如何从standardin读取文件名?
或者已经有一些内置函数可以轻松完成ls和那些工作?

谢谢!

解决方法:

您可以使用以下命令列出当前目录中的所有文件:

import os
for filename in os.listdir(os.getcwd()):
   # do your stuff

或者您只能列出一些文件,具体取决于使用glob模块的文件模式:

import glob
for filename in glob.glob('*.txt'):
   # do your stuff

它不必是您可以在任何所需路径中列出它们的当前目录:

path = '/some/path/to/file'

for filename in os.listdir(path):
    # do your stuff

for filename in glob.glob(os.path.join(path, '*.txt')):
    # do your stuff

或者您甚至可以使用fileinput指定的管道

import fileinput
for line in fileinput.input():
    # do your stuff

然后用它来管道:

ls -1 | python parse.py
上一篇:使用Java扫描程序按顺序从stdin读取时引发异常


下一篇:python-检测到EOF时不读取标准输入的最后一行