2015-04-06 74 views
1

有没有办法将漂亮的表格输出重定向到文本文件而不仅仅是屏幕?Python漂亮的表格输出到文本文件

https://code.google.com/p/prettytable/wiki/Tutorial

from prettytable import PrettyTable 

x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) 
x.align["City name"] = "l" # Left align city names 
x.padding_width = 1 # One space between column edges and contents (default) 
x.add_row(["Adelaide",1295, 1158259, 600.5]) 
x.add_row(["Brisbane",5905, 1857594, 1146.4]) 
x.add_row(["Darwin", 112, 120900, 1714.7]) 
x.add_row(["Hobart", 1357, 205556, 619.5]) 
x.add_row(["Sydney", 2058, 4336374, 1214.8]) 
x.add_row(["Melbourne", 1566, 3806092, 646.9]) 
x.add_row(["Perth", 5386, 1554769, 869.4]) 
print x 
+1

只是用文件写入对象写变量的内容到一个文件.. – 2015-04-06 01:38:11

回答

3

只写变量x的内容到该文件。

from prettytable import PrettyTable 
x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) 
x.align["City name"] = "l" # Left align city names 
x.padding_width = 1 # One space between column edges and contents (default) 
x.add_row(["Adelaide",1295, 1158259, 600.5]) 
x.add_row(["Brisbane",5905, 1857594, 1146.4]) 
x.add_row(["Darwin", 112, 120900, 1714.7]) 
x.add_row(["Hobart", 1357, 205556, 619.5]) 
x.add_row(["Sydney", 2058, 4336374, 1214.8]) 
x.add_row(["Melbourne", 1566, 3806092, 646.9]) 
x.add_row(["Perth", 5386, 1554769, 869.4]) 
with open('file', 'w') as w: 
    w.write(str(x)) 
+0

嗯,我得到这个错误:预计最后一行的字符缓冲区对象 – user308827 2015-04-06 01:49:45

+0

:w.write(X) – user308827 2015-04-06 01:50:01

+0

检查我的更新..你需要在写入之前将'x'转换为字符串类型。请参阅http://stackoverflow.com/a/9787008/3297613 – 2015-04-06 01:54:41