3

我有这个清单:

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 循环,我怎么能做到这一点?

4

3 回答 3

3

您可以将后缀添加到字符串的开头:

os.system("cat file" + '.txt file'.join(mylist) +".txt > result.txt")

或者您可以将字符串格式与 map 函数一起使用:

os.system("cat " + ' '.join(map('file{0}.txt'.format, mylist)) + " > result.txt")
于 2013-10-19T09:48:28.470 回答
2

使用生成器表达式:

print  "cat " + " ".join("file%d.txt" % int(d) for d in mylist) + " > result.txt"
于 2013-10-19T09:49:44.820 回答
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)))

但这不那么有趣。

于 2013-10-19T10:07:42.603 回答