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.

questionAnswers(2)

yourAnswerToTheQuestion