是否可以将包含字符串,变量和整数的多个打印命令包装到一个变量中,然后将其写入文件

问题描述

 #attempt to print the contents individually-Failed
 cut=(
 ('total genes',Signature_1,str(len(NameA))),('up genes',str(len(upA))))
 for i in cut:
     print(i)

 #actual output=('total genes','V.txt','3725')
 #desired output=total genes V.txt 3725
 
 #example of multiple print commands I would like to execute and write to a file
 print('down genes',len(downA)),print('total genes',Signature_2,len(NameB)),print('up genes',len(upB)),

尝试在单个变量下合并多个打印语句,并执行for循环以打印该变量中的每一行。最终,我这样做是为了将输出写入.txt文件。 sys.stdout确实执行了所需的功能,但是该块的作用类似于递归循环,并且永远不会终止,寻找替代方案。到目前为止,我唯一的想法是将每个文本分组在一个变量下并执行for循环(此操作失败)。我的第二种方法是将多个打印方法归类到一个变量下,并从变量级别执行每个方法(同样失败,并且不确定是否可能)。任何替代或建议,将不胜感激。

解决方法

您可以使用list comprehension来连接cutjoin中的嵌套元组,再将第一个join生成的多个字符串分成几行,例如如下所示:

cut=(
 ('total genes',Signature_1,str(len(NameA))),('up genes',str(len(upA))))

lines = '\n'.join([' '.join(i) for i in cut])

这对您有用吗?