首页 > 解决方案 > 是否可以将包含字符串、变量和整数的多个打印命令包装到以后可以写入文件的变量中

问题描述

 #attempt to print the contents individually-FAILED
 cut=(
 ('total genes',Signature_1, str(len(NameA))),
 ('up genes',Signature_1, 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',Signature_1,len(downA)),
 print('total genes',Signature_2, len(NameB)),
 print('up genes',Signature_2,len(upB)),

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

标签: pythonfor-loopwrite

解决方案


您可以使用 alist comprehension将嵌套元组加入cutjoin再次将第一个生成的多个字符串join分成单独的行,如下所示:

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

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

这对你有用吗?


推荐阅读