微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python与特使,如何使用变量

我尝试使用Python envoy更好地访问Shell程序.但我有一个问题,我想删除一个文件夹的所有项目,但特使无法处理我的变量:

import envoy
import os

# Check for a empty folder. 
if len(os.listdir(csv_save_path)) != 0:
    for item in os.listdir(csv_save_path):
        result = envoy.run('rm -v',item)
        print result.std_out
        print result.std_err

输出

"rm: missing operand\nTry `rm --help' for more @R_760_4045@ion.\n"

我不想使用子过程.谁知道出了什么问题?

编辑:

感谢您的快速回复.现在我收到此错误消息:

    Exception in thread Thread-4:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib64/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib64/python2.7/site-packages/envoy/core.py", line 40, in target
    bufsize=0,
  File "/usr/lib64/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1228, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

*** AttributeError: 'nonetype' object has no attribute 'returncode'

但我检查文件的路径,无论有没有路径,它都失败了.

编辑:解决方案是使用%s将项目送到正确的位置.

import envoy
import os

# Check for a empty folder. 
if len(os.listdir(csv_save_path)) != 0:
    for item in os.listdir(csv_save_path):
        result = envoy.run('rm -v %s' % item)
        print result.std_out
        print result.std_err

至今

解决方法:

试试这个

import envoy
import os

# Check for an empty folder. 
if len(os.listdir(csv_save_path)) != 0:
    for item in os.listdir(csv_save_path):
        result = envoy.run('rm -v %s' % item)
        print "Output: %s" % result.std_out
        print "Error: %s" % result.std_err

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐