Средство записи/принтер текстовых таблиц для PythonPython

Программы на Python
Ответить
Anonymous
 Средство записи/принтер текстовых таблиц для Python

Сообщение Anonymous »


TL;DR -> Есть ли в PyPi модуль записи таблиц (мне не удалось его найти), который принимает списки в качестве параметров и создает таблицу из этих списков. Я спрашиваю об этом, потому что просматривал PyPI, но не нашел ничего похожего на печать строк или запись строк в файлы.


Представьте, что у вас много статистики и вам нужно аккуратно записать ее в таблицу, например эту (я пытался научить класс различиям между различными алгоритмами сортировки) (Также обратите внимание, что приведенный здесь пример не соответствует выводу код, приведенный ниже. Я сделал это просто для того, чтобы объяснить, что я хочу, а не создавать огромные куски кода, которые нужно пролистывать):

Код: Выделить всё

#########################
#   LENGTH ||| TIME(s)  #
#########################
#       0  ||| 0.00000  #
#     250  ||| 0.00600  #
#     500  ||| 0.02100  #
#     750  ||| 0.04999  #
#    1000  ||| 0.08699  #
#    1250  ||| 0.13499  #
#    1500  ||| 0.19599  #
#    1750  ||| 0.26900  #
#    2000  ||| 0.35099  #
#########################
В идеале я бы написал что-то вроде этого для сохранения в файл, как показано ниже. набор списков, один список содержит один набор значений, другой — другой набор соответствующих значений.

Код: Выделить всё

if __name__ == '__main__':
with open(os.path.join(os.path.dirname(__file__), 'Sort Stats', 'stats_exp.txt'), 'w') as stats:
stats.write(
"O-######################==#######################==#######################==######################-O\n")
stats.writelines(
"|{0:^23}||{1:^23}||{2:^23}||{3:^23}|\n".format("Bubble Sort", "Insertion Sort", "Merge Sort (R)",
"Merge Sort (I)"))
stats.write(
"|#######################||#######################||#######################||#######################|\n")
stats.write(
"|   LENGTH  |  TIME(s)  ||   LENGTH  |  TIME(s)  ||   LENGTH  |  TIME(s)  ||   LENGTH  |  TIME(s)  |\n")
stats.write(
"|#######################||#######################||#######################||#######################|\n")
for times_taken, t1, t2, t3, t4 in zip(total_lengths, sort_times_bubble, sort_times_ins, sort_times_merge_r,
sort_times_merge_i):
stats.write(
"|{0:^11}|{1:^11}||{2:^11}|{3:^11}||{4:^11}|{5:^11}||{6:^11}|{7:^11}|\n"
.format(
times_taken, str(t1)[:6],
times_taken, str(t2)[:6],
times_taken, str(t3)[:6],
times_taken, str(t4)[:6],
)
)
stats.write(
"O-######################==#######################==#######################==######################-O\n")

print "Data writing complete"
Как видите, это не совсем красиво, и, что наиболее важно, его нелегко расширить, поскольку он в значительной степени что-то печатает.

Я хочу создать для этого модуль и загрузить его в PyPI. Однако, если кто-то уже сделал что-то подобное, то это будет напрасная трата усилий, и я мог бы просто создать форк их репозиториев вместо того, чтобы писать код с нуля.

Подробнее здесь: https://stackoverflow.com/questions/191 ... for-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»