В настоящее время я пытаюсь написать программу, которая открывает латексный файл, создает PDF-файл с тем же именем и сохраняет его в той же папке, что и латексный файл.
Моя проблема: файл pdf создается в той же папке, что и файл python программы, которую я запускаю, а не в папке, где находится файл латекса - я не могу понять, почему это происходит. Я пытаюсь достичь своей цели в два этапа.
Сначала я использую функцию, которая принимает каталог и название файла латекса, чтобы можно было сгенерировать PDF-файл с тем же именем:
def getName(self, somestring):
if "/" in somestring:
indexsofslash = [i for i, ltr in enumerate(somestring) if ltr == "/"]
indexsofdot = [i for i, ltr in enumerate(somestring) if ltr == "."]
lastindexslash = max(indexsofslash)
lastindexdot = max(indexsofdot)
mainName = somestring[lastindexslash + 1:lastindexdot]
pdfDirectory = somestring[:lastindexslash + 1]
someothername = pdfDirectory + mainName
newname = someothername
else:
newname = somestring
return newname
После этого я использую эту функцию для создания файла PDF, используя:
def generate_pdf(self):
name=self.getName(self.fl)
f = open('%s.tex'%name,'w')
tex = self.txt.get(1.0,"end-1c")
f.write(tex)
f.close()
proc=subprocess.Popen(['pdflatex','%s.tex'%name])
proc.communicate()
os.startfile('%s.pdf'%name)
#os.unlink('%s.tex'%name)
os.unlink('%s.log'%name)
os.unlink('%s.aux'%name)
*Примечание: когда печатается имя, отображается каталог латексного файла + название файла, т. е. H:/Public/Test/test.
Что происходит: PDF-файл создается в папке, где находится файл Python программы, которую я запускаю, а не в папке, где находится мой файл латекса - что я делаю неправильно?