如何在shell脚本中调用python?

sh/bash/dash/ksh/zsh等Shell脚本
回复
SHmech
帖子: 14
注册时间: 2009-03-17 20:38
送出感谢: 0
接收感谢: 0

如何在shell脚本中调用python?

#1

帖子 SHmech » 2011-02-22 23:43

对脚本一窍不通。问的不对还请包涵。

在网上下了一个处理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
请问是什么原因?正确的应该怎么写?多谢
forestchen
帖子: 41
注册时间: 2008-05-11 11:10
送出感谢: 1 次
接收感谢: 2 次

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

#2

帖子 forestchen » 2011-02-23 0:12

export 一下 python的运行路径,
另外最好写成 python path/a.py b.pdf

如果不行,贴出出错信息.
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

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

#3

帖子 trigger » 2011-02-23 9:47

shell里面空格的作用绝不是美观!!为了美观而存在的空格往往是脚本出错的罪魁祸首。
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
SHmech
帖子: 14
注册时间: 2009-03-17 20:38
送出感谢: 0
接收感谢: 0

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

#4

帖子 SHmech » 2011-02-23 10:37

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,不应该报错的呀
forestchen
帖子: 41
注册时间: 2008-05-11 11:10
送出感谢: 1 次
接收感谢: 2 次

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

#5

帖子 forestchen » 2011-02-23 13:12

是否应该写成

代码: 全选

python $path/a.py b.pdf

代码: 全选

for i in *.pdf
SHmech
帖子: 14
注册时间: 2009-03-17 20:38
送出感谢: 0
接收感谢: 0

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

#6

帖子 SHmech » 2011-02-23 15:16

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

代码: 全选

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

回到 “Shell脚本”