我有这个清单:
myist = ['0', '1', '2', '3']
我希望通过os.system()执行某些操作,其中一行使用多个文件:
cat file0.txt file1.txt file2.txt file3.txt > result.txt
但我不确定如何在加入列表时添加后缀。这样:
os.system("cat file" + ' file'.join(mylist) +".txt > result.txt" )
会给我:
cat file0 file1 file2 file3.txt > result.txt
但我想要的是:
cat file0.txt file1.txt file2.txt file3.txt > result.txt
所以我正在寻找的是类似'prefix'.join(mylist).'suffix'
的东西。
如何在不使用for循环的情况下执行此操作?
答案 0 :(得分:2)
您只需将后缀添加到字符串的开头:
os.system("cat file" + '.txt file'.join(mylist) +".txt > result.txt")
或者你可以在地图函数中使用字符串格式:
os.system("cat " + ' '.join(map('file{0}.txt'.format, mylist)) + " > result.txt")
答案 1 :(得分:1)
使用生成器表达式:
print "cat " + " ".join("file%d.txt" % int(d) for d in mylist) + " > result.txt"
答案 2 :(得分:0)
如果您每个人都想使用它超过4个项目
os.system('cat %s > result.txt'%(' '.join("file%i.txt"%i for i in xrange(0,4))))
您也可以这样做:
mylist = ['0','1','2','3']
os.system('cat %s > result.txt'%(' '.join("file%s.txt"%i for i in mylist)))
但那不那么有趣。