2014-10-07 79 views
-1

我想在bash腳本中將某些PDF文件轉換爲TXT文件。如何在Python腳本中運行bash命令?

pdf2txt.py -o otuput.txt input.pdf

這是做任務的單個文件的命令。 但是對於大型文件集,我試圖執行以下操作。

#!/bin/bash 
cd /home/z..../P...../file/pdf 

python << END 

import os 
file_lst = os.listdir(r'/home/z..../P...../file/pdf') 

out_file_lst = [] 
l = len(file_lst) 

for i in file_lst: 
    out_file_lst.append(file_lst[0].split('.')[0] + '.txt') 

for i in range(l): 
    pdf2txt.py -o out_file_lst[i] file_lst[i] 
    # How to run this bash command inside of python ? 

END 
+0

此以前已經回答了。例如,請參閱http://stackoverflow.com/questions/4256107/running-bash-commands-in-python或http://stackoverflow.com/questions/20415522/running-a-bash-script-from-python – 2014-10-07 14:57:02

+0

感謝您的建議,但那不是我所期待的。 – 2014-10-07 16:17:03

+0

爲什麼你首先將這個作爲bash腳本?你有一個Python腳本,唯一''bash'命令('cd ...')可以通過'os.chdir'移動到Python腳本中。或者,不要使用Python將整個事物變成「bash」腳本。像這樣的交替語言沒有任何用處。 – chepner 2014-10-07 16:52:08

回答

3

您可以創建一個bin/bash腳本,將txt文件中的目錄中的所有pdf文件轉換。

#!/bin/bash 
for file in *.pdf; 
do pdftotext "$file" "$file.txt"; 
done 
+1

,除了輸出結束爲'somefile.pdf.txt'。 – tdelaney 2014-10-07 15:10:52

0

我強烈建議subprocess lib。

例如:

return_code = subprocess.call(['ls', '-l'])