Структура текущей папки
У меня есть скрипт на python, который использует PyPDF2 для объединения PDF-файлов и вывода их в другую папку.
В данный момент я пытаюсь запустить его на своем локальном компьютере (windows 10).
Скрипт работает нормально, если я запускаю его из терминала, PDF-файлы объединяются, и это зрелище.
Однако, когда я запускаю скрипт с сервера, он все равно запускается, но не создает объединенный pdf. Я знаю, что скрипт выполняется, потому что переменная $output
разрешается как переменная напечатанного имени из скрипта.
Сценарий вызывается из Deliveries.php
файла
Так что в основном скрипт будет работать, но не будет писать :(
.
Я пытаюсь использовать php для запуска скрипта.
$command_text = 'python '.BASEPATH.'../application/controllers/scripts/merge.py';
$command = escapeshellcmd($command_text);
$output = shell_exec($command);//Returns the printed 'name' variable from the script
А скрипт такой:
import os
import time
from PyPDF2 import PdfFileMerger
name = int(time.time())
name = str(name) + '_1.pdf'
print(name)//The returned variable
files = os.listdir("staging")
pdfs = []
for file in files:
pdfs.append("staging/" + file)
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(open(pdf, "rb"))
with open("here/"+name, "wb") as fout:
merger.write(fout)
Я предполагаю, что это проблема с разрешениями, но я не уверен, как ее решить.
решаемые
Я думаю, что это как-то связано с codeigniter 3, но по неосторожности мне пришлось ссылаться на каталоги относительно корневой папки.
import os
import time
from PyPDF2 import PdfFileMerger
name = int(time.time())
name = str(name) + '_1.pdf'
# print(name)
files = os.listdir('application/controllers/scripts/staging')
pdfs = []
for file in files:
pdfs.append("application/controllers/scripts/staging/" + file)
merger = PdfFileMerger()
for pdf in pdfs:
merger.append(open(pdf, "rb"))
with open("../assets/pdfs/"+name, "wb") as fout:
merger.write(fout)