Я пытаюсь использовать 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 information.\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
пока