Tabela tekstowa Writer / Printer for Python
TL; DR -> Czy w PyPi jest moduł do pisania tabel (nie udało mi się go znaleźć), który przejmuje listy jako parametry i tworzy tabelę z tych list. Pytam o to, ponieważ przeglądałem PyPI, ale nie znalazłem niczego podobnego do drukowania ciągów lub zapisywania ciągów do plików.
Wyobraź sobie, że masz dużo statystyk i starannie zapisuję je w tabeli, tak jak to (starałem się nauczyć klasę różnic między różnymi algorytmami sortowania) (pamiętaj, że przykład podany tutaj nie pasuje do wyniku podanego poniżej kodu. Zrobiłem to w prosty sposób, aby wyjaśnić, czego chcę, a nie tworzyć dużych fragmentów kodu, który trzeba przewijać):
#########################
# 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 #
#########################
Idealnie byłoby napisać coś takiego, aby zapisać do pliku, jak ten poniżej. zestaw list, jedna lista zawierająca jeden zestaw wartości, druga zawierająca inny zestaw odpowiednich wartości.
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"
Jak widać, nie jest to całkiem ładne, a co najważniejsze, nie jest to coś, co jest łatwe do rozszerzenia, ponieważ prawie coś drukuje.
Chcę utworzyć moduł do tego i przesłać go do PyPI. Jednakże, jeśli ktoś już coś z tym zrobił, to byłoby to marnowanie wysiłku, a ja mogłem rozwidlać ich repozytoria, zamiast faktycznie pisać kod od zera.