2010-10-18 106 views
0

我想使用命令pdftotext將所有的.pdf文件從特定的目錄轉換爲.txt格式...但我想用python腳本來做這個... my腳本包含:無法使用python腳本將pdf轉換爲文本

import glob 
import os 

fullPath = os.path.abspath("/home/eth1/Downloads") 

for fileName in glob.glob(os.path.join(fullPath,'*.pdf')): 
    fullFileName = os.path.join(fullPath, fileName) 
    os.popen('pdftotext fullFileName') 

,但我收到以下錯誤:

Error: Couldn't open file 'fullFileName': No such file or directory. 
+0

'fullFileName = os.path.join(fullPath,fileName)'是多餘的 – SilentGhost 2010-10-18 10:05:44

回答

3

你從字面上傳遞fullFileNameos.popen。你應該做這樣的事情,而不是(假設fullFileName沒有進行轉義):

os.popen('pdftotext %s' % fullFileName) 

還要注意的是os.popen不推薦使用,最好使用subprocess模塊來代替:

import subprocess 
retcode = subprocess.call(["/usr/bin/pdftotext", fullFileName]) 

它也更安全,因爲它正確處理fullFileName中的空格和特殊字符。

+0

嘿夥計thanx的更正.. – user868769 2010-10-18 10:09:03

+0

但一個捕獲...它只轉換第一個PDF ...而我想轉換全部來自那個目錄 – user868769 2010-10-18 10:10:19

+0

那麼,當然把整個東西放在你最初有'os.popen'調用的'for'循環中。 – 2010-10-18 11:33:39

1

最後一行更改爲

os.open('pdftotext {0}'.format(fullFileName)) 

這樣的fullFileName值將被傳遞,而不是名稱。

+0

嘿夥計thanx的更正.. – user868769 2010-10-18 10:10:50

+0

但一個捕獲...它只轉換第一個pdf ...而我想轉換所有目錄 – user868769 2010-10-18 10:11:16