分页: 1 / 1

如何在shell脚本中调用python?

发表于 : 2011-02-22 23:43
SHmech
对脚本一窍不通。问的不对还请包涵。

在网上下了一个处理pdf文件的python程序a.py,其运行为

代码: 全选

 a.py b.pdf
由于其一次只能处理一个pdf文件,于是想写一个shell脚本使其能自动处理一个目录下的所有pdf文件,试了一下如下的不能工作:

代码: 全选

#!/bin/bash

path =/home/hui/Papers/
path2=/home/hui/Softwares/

cd path

pwd

for i in *pdf
do
        echo $i 
        path2/a.py $i
done
请问是什么原因?正确的应该怎么写?多谢

Re: 如何在shell脚本中调用python?

发表于 : 2011-02-23 0:12
forestchen
export 一下 python的运行路径,
另外最好写成 python path/a.py b.pdf

如果不行,贴出出错信息.

Re: 如何在shell脚本中调用python?

发表于 : 2011-02-23 9:47
trigger
shell里面空格的作用绝不是美观!!为了美观而存在的空格往往是脚本出错的罪魁祸首。

Re: 如何在shell脚本中调用python?

发表于 : 2011-02-23 10:37
SHmech
python是系统安装的,应该不需要export吧
写成

代码: 全选

python path/a.py b.pdf
后有如下的错误:
python: can't open file 'path2/a.py': [Errno 2] No such file or directory

而如果直接写

代码: 全选

python /home/hui/Softwares/a.py $i 
又有如下的错误:a.py: error: incorrect number of arguments
脚本中只给了a.py一个参数$i,不应该报错的呀

Re: 如何在shell脚本中调用python?

发表于 : 2011-02-23 13:12
forestchen
是否应该写成

代码: 全选

python $path/a.py b.pdf

代码: 全选

for i in *.pdf

Re: 如何在shell脚本中调用python?

发表于 : 2011-02-23 15:16
SHmech
非常感谢两位,我找到出现error: incorrect number of arguments的原因了,是由于我的很多pdf文件名内含有空格,这样a.py就认为有很多个参数。改为

代码: 全选

python $path2/a.py "$i"
后可以运行。
再次感谢!