而不是
cat $$dir/part* | ./testgen.py
我想将文件全局化,然后在我的python脚本中使用stdin for ./testgen.py。我该怎么做
答案 0 :(得分:1)
你可以让shell为你做这件事:
./testgen.py $$dir/part*
这会将每个匹配的文件名作为单独的参数传递给您的程序。然后,您只需阅读sys.argv[1:]
中的文件名。
答案 1 :(得分:0)
可以使用glob
和fileinput的组合:
from glob import glob
import fileinput
for line in inputfile.input(glob('dir/part*')):
print line # or whatever
虽然如果你让shell扩展它 - 你可以使用inputfile.input()
,它将从sys.argv[1:]
获取输入文件。
答案 2 :(得分:0)
nneonneo关于shell扩展是正确的,但它不能在Windows上运行。这是一个简单,完全防弹的跨平台版本:
import sys
from glob import glob
def argGlob(args=None):
if args is None: args = sys.argv
return [subglob for arg in args for subglob in glob(arg)]
argGlob
将返回与Unix风格的shell扩展完全相同的东西,它也不会搞砸任何已经扩展的args列表。