作者schemer (珍惜每分每秒)
看板Python
标题[问题] 使用subprocess的一些问题
时间Sun Jun 19 15:38:08 2016
想请问板上的大大,小弟在写python的小工具出现的问题
首先,我有一个.py档,内容主要是针对file system的操作或是
呼叫system command
一开始,我把全部的逻辑写在一个.py档里,遇到要call system
command的时候,就使用subprocess.Popen, 到目前为止,并无
太多问题
後来,因为功能的扩增,我把一些东西拆出去变成class或是
一些common utils, 问题就出现了
EX. main.py内容如下
from common import run_command
if __init__ == '__main__':
run_command('sudo', 'ls', '-al')
common.py
def run_command(cmd):
subprocess.Popen(cmd)
则会出现无法执行状况
後来,在另一个功能上,我把run_command包在class里,就可以跑
Ex : main.py
from feature import a
if __init__ == '__main__':
obj_a = a()
a.run_command('sudo', 'ls', '-al')
feature.py
class a(object):
def __init__(self):
do_something
def run_command(cmd):
subprocess.popen(cmd)
原本把run_command这个很常用的method拉出去之後,就不能跑了
可是,在包成class之後,用起来就跟放在main.py里一样,没什
麽问题
想请问大大们,为什麽会这样?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.79.110
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1466321891.A.0F6.html
1F:→ alibuda174: 什麽不能跑? 错误讯息? 06/19 15:40
2F:→ alibuda174: 应该是if __name__ == '__main__':吧 06/19 15:43
3F:→ kenduest: 程式码内应该是 subprocess.Popen,Popen 你打成小写 06/19 20:53
4F:→ kenduest: 另外 subprocess.Popen 你要执行命令有带入参数 06/19 20:53
5F:→ kenduest: 要使用 list, subprocess.Popen(['sudo','ls','-a']) 06/19 20:54
6F:→ kenduest: 另外你的 run_command 写法也无法正常处理 06/19 20:56
7F:→ kenduest: run_command('sudo', 'ls', '-al') 这种语法 06/19 20:56
8F:→ kenduest: 真的要呼叫要用 run_command(['sudo', 'ls', '-al']) 06/19 20:58
9F:→ schemer: 感谢两位大大的回答,我明天把详细的code贴上来好了 06/20 22:49