how write all data in one column in python?
本问题已经有最佳答案,请猛点这里访问。
我有一个用python编写的程序,它产生一些文本,每行加一个数字。我想把它保存到一个文件中。以下是保存后的输出示例:
1 2 3 4 | some text 6.2 some other text 7.6 some other text here too 6.8 some text 8 |
正如您所看到的,数字不在一列中。我在文本和数字之间使用了一些空格,但我想把所有的数字放在一列中。我该怎么做?使用文件写入方法还是其他方法?
编辑:
我想将这些数字放在一列中,以保存在文件中并使用write方法。如果我可以使用打印功能在监视器中显示数据,这很容易,但我想保存在一个文件中。其他类似的文章展示了如何在输出中显示而不是在文件中保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import json import urllib.request as rq def func(): data=rq.urlopen('http://yts.to/api/v2/list_movies.json?quality=3d&limit=50') dataj=json.loads(data.read().decode()) with open('yts.txt','w+') as f: f.write("Title Imdb rating ") f.write("--------------------------------------- ") for i in range(len(dataj["data"]["movies"])): f.write(dataj["data"]["movies"][i]["title"]+'\t'+str(dataj["data"]["movies"][i]["rating"])) f.write(" ") if __name__=="__main__": func() |
我不明白严格的"漂亮"格式的目的,但在需要的时候…
如果您有一个字符串和相关数字的列表(我将在字典中补充数据,但对于您的应用程序,应该采用相同的一般思想):
1 2 3 4 5 6 7 8 9 10 11 12 | a = {'aaaaa':'8', 'bb':'1', 'ccccccccccccccccccccccc':'512', 'd':'9999', 'eeee':'0'} maxwidth = max( [len(r) for r in a] ) for r in a: print(r + a[r].rjust(20 + maxwidth - len(r))) aaaaa 8 eeee 0 ccccccccccccccccccccccc 512 bb 1 d 9999 |
我对你的计划不太了解。但请检查:https://pypi.python.org/pypi/table
如果这是一个作业分配,并且您不能使用外部库,那么您可以将"表"单元格定义为一定的宽度。找到字符串长度,然后从单元格宽度中减去该长度,得到要填充的空格数(如果可以接受,并且单元格不能容纳字符串,则还可以添加省略号)。
但是,如果您试图在程序之间传递信息,则应该始终以固定的形式(分隔符等)保存数据。""漂亮的印刷品"只适用于人类。
尝试在文本和数字之间放置一个或多个
如果标签是在运行时定义的,它可能需要一些您方面的考虑,或一个漂亮的打印机,我没有寻找,因为这不是经常出现在我。一般来说,如果使用制表符而不是空格,尽管这样做有助于使事物排列整齐,但必须确保所有内容都在最长标签的末尾加上制表符。