Koduję skrypt w języku Python, który kilkakrotnie używa aplikacji pdftk do wykonywania niektórych operacji.Python: Nie można otworzyć pliku przy użyciu os.system()
Na przykład, można użyć pdftk w linii powłoki poleceń okna scalić dwa pliki pdf tak:
pdftk 1.pdf 2.pdf cat output result.pdf
chciałbym wykonać powyższą operację w środku mojego skryptu Pythona. Oto jak próbowałem to zrobić:
os.system('pdftk 1.pdf 2.pdf cat output result.pdf')
Powyższe polecenie pdftk działa doskonale w powłoce systemu Windows. Jednak nie uda się otworzyć plików wejściowych (1.pdf i 2.pdf), gdy próbuję wykonać to przy pomocy Pythona os.system()
. Oto komunikat dostaję od pdftk gdy próbuje wykonać polecenie używając Pythona os.system()
:
Error: Failed to open PDF file: 1.pdf
Error: Failed to open PDF file: 2.pdf
Dlaczego tak się stało? Jak mogę to naprawić?
Uwaga: wiem, że istnieją lepsze sposoby łączenia plików pdf z Python. Moje pytanie nie dotyczy łączenia plików pdf. To był tylko zabawny przykład. Co staram się osiągnąć to zdolność do uruchamiania pdftk i innych aplikacji linii poleceń za pomocą Pythona.
To prawie na pewno problem ze ścieżkami katalogów. Możesz przekazać pełną ścieżkę z 'C: \' lub gdziekolwiek ona jest, lub upewnij się, że zaczynasz w odpowiednim katalogu. – chmullig
Może to być również problem z interpolacją zmiennej lub powielaniem. Zawsze używaj modułu 'subprocess' zamiast' os.system', aby uniknąć takich problemów. – Philipp
@chmullig: Czy naprawdę jesteś tak głupi? Cóż, okazuje się, że jestem. Problem był rzeczywiście problemem ścieżki. Powtórz to, co powiedziałeś w odpowiedzi na pytanie, a ja to zaakceptuję. Dzięki. – snakile