2017-07-05 4 views
-2

Je ne peux pas savoir pourquoi mon os.system renvoie le code python 1.ne sais pas pourquoi os.system code renvoie 1

import os 
flist = getFileList("C:/Users/Owner/Desktop/TM/reports") 
a = flist[0].replace('.pdf', '.txt') 
os.system("pdf2txt.py -o a flist[0]") 
+2

Possible dupliquer de [Pourquoi 'os.system' se termine avec le code retour 1?] (Https: //stackoverflow.com/questions/25807062/why-os-system-exits-with-return-code-1) – Skam

+0

@SeeDart La cause de l'erreur est différente, –

Répondre

2

Je pense que vous vouliez dire

import os 
flist = getFileList("C:/Users/Owner/Desktop/TM/reports") 
a = flist[0].replace('.pdf', '.txt') 
# 1. os.system("pdf2txt.py -o a flist[0]") 
# 2. os.system("pdf2txt.py -o a " + "flist[0]") 
os.system("pdf2txt.py -o " + a + " " + '"' + flist[0] + '"') 

Les différences entre les 3 options sont très subtiles. En 1,2 python est l'exécution de la commande avec une chaîne littérale flist[0] et l'autre, option non commentée, avec la valeur contenue à flist[0]

+1

Et encore plus, ajoutez des guillemets autour de flist [0] – ddbug

+0

Bonne idée @ddbug! Edité pour ajouter à votre commentaire – Skam

+1

Non, je ne voulais pas briser le code de travail :)). Juste pour citer le nom de fichier dans le cas où il contient des espaces. '+ '"' + flist [0] + '"'' – ddbug