Wpis z mikrobloga

#python #programowanie i może #codereview ?

Poddaje się, przy pomocy kolegi @Calka_internowana oraz @Krolik udało się stworzyć coś bardzo fajnego dla mnie ale zacząłem nowe featury dodawać i się wysypało. Tutaj link do pastebina: https://pastebin.com/jR4iid1p

Kod błędu jest nastepujacy:

Podaj w postaci cyfry do kogo chesz wygenerować wniosek np 1 lub wpisz lista jeżeli nie wiesz jaka cyfra odpowiada wnioskowi lub exit jeżeli chcesz wyjśc z programu: 3
sciezka pierwszego wygenerowanego pliku C:\Users\Administrator\Pulpit\Programowanie\Python\kod\example\output\2023-06-09_help1_PR do Tauron - Wniosek o uzgodnienie branżowe.pdf
sciezka drugiego wygenerowanego pliku C:\Users\Administrator\Pulpit\Programowanie\Python\kod\example\output\2023-06-09_help2_PR do Tauron - Wniosek o uzgodnienie branżowe.pdf
Traceback (most recent call last):
File "c:\Users\Administrator\Pulpit\Programowanie\Python\kod\example\wersja wykop.py", line 201, in <module>
merge_fields_with_template(fill_and_generate_pdf(choice), tauron(choice))
File "c:\Users\Administrator\Pulpit\Programowanie\Python\kod\example\wersja wykop.py", line 165, in merge_fields_with_template
with open(fields_template, 'rb') as fields:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\Administrator\Pulpit\Programowanie\Python\kod\example\output\2023-06-09_help2_PR do Tauron - Wniosek o uzgodnienie branżowe.pdf'

Wydaje się, że coś ze ścieżką jest nie tak, wpisuje jakieś podwójne backslashe, może coś źle jest interpretowane przeze mnie albo przez program - nie wiem. Bawiąc się w debugging udało mi się ustalić, że właśnie coś ze ścieżką jest nie tak bo jak użyję:

merge_fields_with_template(fill_and_generate_pdf(choice), tauron(choice))

(to tam na końcu programu to nie działa ale tworzy ładnie dwa pliki help1, help2 no ale nie łączy ich, a jak użyję

#merge_fields_with_template(fill_and_generate_pdf(choice), "output/2023-06-09_help2_PR do Tauron - Wniosek o uzgodnienie branzowe.pdf")

no to merguje ale wiadomo, nie generuje tego pliku help2, musi być juz w folderze obecny.

Może coś poradzicie? Przy okazji nie widze przeszkód żeby wytknąć mi błędy w kodzie bo przecież widzę, że nie jest tak fajny jak od @Calka_internowana i nie bardzo znajdywałem sposób jak np generować (w razie potrzeby) pdf z np dwoma stronami (docelowo myślałem żeby dodać do słownika klucz z ilością stron ale co dalej z tym zrobić to poległem). Docelowo tez zaimportowałem "import os" żeby przy pomocy tego usunąć te helpery po wygenerowaniu docelowego pliku ale jak macie jakiś fajnieszy sposób niż chamski os.remove
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ozzi91: A ten plik na pewno tam jest? Widzę, że ma on w sobie datę utworzenia - czy potencjalnym błędem nie jest to, że może pracowałeś wcześniej na plikach z wczoraj, a dzisiaj już szukasz innej daty i nie działa?
(zgaduję, nie mam czasu na przeglądanie kodu ;) )
  • Odpowiedz
@ozzi91 nie znam pythona, nie wiem co robisz, ale widze spacje w sciezce (nazwa pliku) i pierwsze co bym zrobil to zamienil w nazwie spacje na _ i sprobowal zeby wykluczyc uposledzenie windowsa :)
  • Odpowiedz
@ozzi91: jeszcze sprawdzaj czy ścieżka istnieje: os.path.isdir() a zamiast helperow fizycznych to możesz próbować mieć coś w pamięci jeśli danych nie jest tona
  • Odpowiedz
via Android
  • 0
@Arogancky ok, poczytam o używaniu os. czytałem coś, o plikach temp ale tak tylko na przykładach było na zasadzie - stwórz plik txt , włóż do niego dane - skasuje się po zamknięciu programu. nie wiem jak by to miało działać przy pdf
  • Odpowiedz
@ozzi91: możesz spróbować napisać klasę - wrapper i w niej trzymać to co cię interesuje. Potem możesz mieć np listę obiektów tej klasy gdzie będą reprezentację różnych plików itp
  • Odpowiedz