Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2023 16:58:23

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess экранировать кавычки?

Баш:

 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'

Офлайн

#2 Март 3, 2023 00:23:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

subprocess экранировать кавычки?

gelius
Не получилось выполнить через subprocess:
Так ты подавай либо список, либо строку. А список со всей строкой подавать не надо. В списке в первом элементе пишется программа, во втором элементе пишется первый аргумент, в третьем аргументе пишется второй аргумент и так далее.

  
subprocess.check_output(['sed', '-in', 's/\r$//', '/media/sf_soft/vsc/2.txt'])



Офлайн

#3 Март 3, 2023 03:13:17

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess экранировать кавычки?

 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()

Отредактировано gelius (Март 3, 2023 08:28:06)

Офлайн

#4 Март 3, 2023 16:22:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

subprocess экранировать кавычки?

gelius
Такой скрипт выполняется бесконечно.
У меня нормально выполняется.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version