В момента се опитвам да напиша програма, която отваря латексов файл и генерира 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 файлът на програмата, която изпълнявам, вместо в папката, където е моят латекс файл - какво правя погрешно?