Python:命令在终端中工作,而不是在os.system()中
我正在编写一个Python脚本,用于从网站中提取PDF,循环它们,刮取它们的文本,然后对它们执行基本的自然语言处理 我遇到了一个奇怪的问题:如果我在终端中使用'sPython:命令在终端中工作,而不是在os.system()中,python,nltk,Python,Nltk,我正在编写一个Python脚本,用于从网站中提取PDF,循环它们,刮取它们的文本,然后对它们执行基本的自然语言处理 我遇到了一个奇怪的问题:如果我在终端中使用'spdf2txt.py命令,它就可以正常工作。相反,如果我尝试在脚本本身中循环我的文件,如下所示: for url in papers: urllib.urlretrieve(url, DIR + "paper.pdf") os.system("pdf2text.py -o paper.txt -t text pape
pdf2txt.py
命令,它就可以正常工作。相反,如果我尝试在脚本本身中循环我的文件,如下所示:
for url in papers:
urllib.urlretrieve(url, DIR + "paper.pdf")
os.system("pdf2text.py -o paper.txt -t text paper.pdf")
我得到以下错误:
sh:pdf2text.py:未找到命令
这和路径、环境变量有关吗?我甚至不知道从哪里开始
我真的更喜欢
pdf2txt
,而不是说,因为后者导致nltk
出错(我猜是整个其他帖子)。问题是程序名是pdf2txt.py
,而不是pdf2text.py
,这看起来肯定像是路径问题。使用脚本的绝对路径。您不需要“python pdf2text.py-o paper.txt-t text paper.pdf”吗“python pdf2text.py-o paper.txt-t text paper.pdf”
@David,@Lucas:我知道它似乎需要python调用,但是pdf2txt
的安装脚本创建了一个程序/usr/bin/pdf2txt.py
。哦,我的上帝,我羞愧地垂下了头。不用担心,我们所有人有时都会这样:)