将列表转换为带前缀和后缀的字符串

时间:2013-10-19 09:45:33

标签: python

我有这个清单:

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循环的情况下执行此操作?

3 个答案:

答案 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)))

但那不那么有趣。