Найти - Пользователи
Полная версия: subprocess экранировать кавычки?
Начало » Python для экспертов » subprocess экранировать кавычки?
1
gelius
Баш:
 sed -i 's/\r$//' /media/sf_soft/vsc/2.txt
Не получилось выполнить через subprocess:
 cmd = str(subprocess.check_output(['/usr/bin/sed -in "s/\r$//" /media/sf_soft/vsc/2.txt'], text=True))
Пишет ошибку:
 FileNotFoundError: [Errno 2] No such file or directory: 'sed -in "s/\r$//" /media/sf_soft/vsc/2.txt'
py.user.next
gelius
Не получилось выполнить через subprocess:
Так ты подавай либо список, либо строку. А список со всей строкой подавать не надо. В списке в первом элементе пишется программа, во втором элементе пишется первый аргумент, в третьем аргументе пишется второй аргумент и так далее.

  
subprocess.check_output(['sed', '-in', 's/\r$//', '/media/sf_soft/vsc/2.txt'])
gelius
 subprocess.check_output(['sed', '-in', 's/\r$//', '/media/sf_soft/vsc/2.txt'])
Такой скрипт выполняется бесконечно.
Так получилось:

 from subprocess import Popen
import subprocess
    command='''
    sed -i 's/\r$//' /media/sf_soft/vsc/2.txt
    '''
    process=Popen(command,shell=True,stdout=subprocess.PIPE)
    result=process.communicate()
py.user.next
gelius
Такой скрипт выполняется бесконечно.
У меня нормально выполняется.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB