Написание текстового файла с python оператором слияния "\" - PullRequest
2 голосов
/ 01 мая 2020

Я пытаюсь автоматизировать скрипт в python, чтобы написать следующую команду с ее параметрами. Я смог сделать следующее

foo -1 \ 
    -2 a \ 
    -3 b \ 
    -4 c \ 
    -5 d \ 
    -6 e \ 
    -7 f

Что кажется правильным. Однако, когда я использую bash для получения файла, который содержит это, в терминале, он жалуется, что у него не указаны никакие опции, и bash не распознает -2, -3, -4, -5 et c. Как я могу написать это правильно, чтобы гарантировать, что при получении файла он будет правильно его читать?

Код:

filehandle.write("foo\t-1 \ \n") 
filehandle.write("-2 a \ \n") 
filehandle.write("-3 b \ \n") 
filehandle.write("-4 c \ \n") 
filehandle.write("-5 d \ \n") 
filehandle.write("-6 e \ \n") 
filehandle.write("-7 f \ \n") 

1 Ответ

1 голос
/ 04 мая 2020

Я смог заставить это работать, указав, что каждая новая строка с аргументами должна начинаться с \t:

>>> with open("test.sh", "w") as f:
...   f.write("ls \\\n\t-l\\\n\t-h\n")
... 
14
>>>

Кроме того, после backsla * 1019 не должно быть пробелов. * которая завершает каждую строку, поэтому это: "foo\t-1 \ \n" должно стать следующим: "foo\t-1 \\\n" (пробелы перед обратная коса sh в порядке).

Также обратите внимание, что это: "\\n" будет записывать в файл буквально backslash, "n", поскольку первая обратная коса sh экранируется символом \n, поэтому вам нужно экранировать эту первую обратную косую черту sh с помощью "\\\n".

. как это:

$ cat test.sh
ls \
    -l\
    -h
$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...