标签:python file pipe stdin stdout
我有一个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
标签:python,file,pipe,stdin,stdout 来源: https://codeday.me/bug/20190916/1806852.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。