为了更好地访问Shell程序,我尝试使用Pythonenvoy。但我有一个问题,我想删除一个文件夹中的所有项目,但特使无法处理我的变量:
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
输出:
^{pr2}$我不想使用子进程。有人知道怎么回事吗?在
编辑:
谢谢你的快速反应。现在我得到了这个错误消息:
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
目前为止
您还可以使用shlex.split帮助您形成要提供给的列表特使。快跑()而不是手工制作/编码列表。在
例如
在您的例子中,代码如下所示:
^{pr2}$envoy.run
的第二个参数是超时。你想要:顺便问一下,为什么要使用命令行} ?在
rm
而不是Python的^{试试这个
相关问题 更多 >
编程相关推荐