2015-04-06 72 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