2015-04-06 3 views
1

Есть ли способ перенаправить вывод таблицы в текстовый файл, а не только на экран?Python Pretty Table вывод в текстовый файл

От 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

просто записать содержимое переменной в файл, используя объект файла писатель .. –

ответ

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

+0

в последней строке: w.write (х) – user308827

+0

проверить мое обновление .. вам нужно преобразовать 'x' в строку типа перед записью. см. http://stackoverflow.com/a/9787008/3297613 –

Смежные вопросы