python将打印输出分配给变量

时间:2018-12-13 13:36:49

标签: python python-3.x

我有一个包含以下元素的字符串列表。此列表可以包含1,2个或更多元素。

list=['abc', 'xyz']

我想使用它们并创建一个如下所示的单行字符串,并稍后在其他一些字符串串联中使用它(创建命令):

Move abc to folder c:\data, move xyz to folder c:\data

直到现在,我都可以使用以下命令进行打印:

for i in list:
  print("Move '" + i + "' to folder 'C:\DATA'",end=", ")

输出为:

Move 'xyz' to folder 'c:\DATA', Move 'xyz' to folder 'c:\DATA',

我想删除最后一个逗号,并在可能的情况下将此输出分配给变量。最后,范围是生成并执行命令(使用子过程模块),如下所示:

restore database db move 'xyz' to folder 'c:\data', Move 'xyz' to folder 'c:\DATA' -server servername -instance instance_name

3 个答案:

答案 0 :(得分:2)

您可以通过Python中的join函数来完成此操作。

>>> lst = ['abc', 'xyz']
>>> s = ', '.join([r'Move {} to folder c:\data'.format(f) for f in lst])
>>> print(s)
Move abc to folder c:\data, Move xyz to folder c:\data

答案 1 :(得分:1)

您可以使用join

list=['abc', 'xyz']
print(", ".join([ "Move '{0}' to folder 'c:\{0}'".format(item) for item in list]))

# Move abc to folder c:\abc, Move xyz to folder c:\xyz

答案 2 :(得分:1)

当您打印某些内容时,它是一次性的。一旦在控制台 1 上显示,您为打印而创建的字符串就消失了。取而代之的是,您可能想用格式化的数据在内存中构建一个字符串,然后打印它,或执行其他操作。

字符串的join方法将允许您仅在元素之间插入逗号。 format方法将允许您使用自定义数据来格式化各个元素:

mystring = ", ".join("Move '{}' to folder 'C:\\DATA'".format(i) for i in mylist)

现在您有了一个可以打印,连接,拆分,传递到子流程等的字符串。


1 您可以打印到内存中的文件并以这种方式提取输出,但是我们现在不再赘述。