Новая строка в скрипте Python, создающая ошибку EOL [закрыто]

Я создаю программу Python для Ubuntu, и мне нужно записать скрипт Python в файл, но \ n в коде создает новую строку в файле , он не копируется как \ n , поэтому я получаю ошибку EOL.

Это код для скрипта Python:

#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]

name = sys.argv[1]; command = sys.argv[2]

launcher = ["[Desktop Entry]", "Name=resolutionx", "Exec=/bin/bash resolutionx.sh", "Type=Application", "X-GNOME-Autostart-enabled=true"]
file = home+"/.config/autostart/"+name.lower()+".desktop"

if not os.path.exists(file):
    with open(file, "wt") as out:     
        for l in launcher:
            l = l+name if l == "Name=resolutionx" else l
            l = l+command if l == "Exec=/bin/bash resolutionx.sh" else l
            out.write(l+"\n")
else:
  print("file exists, choose another name")

В этой части:

if not os.path.exists(file):
    with open(file, "wt") as out:     
        for l in launcher:
            l = l+name if l == "Name=resolutionx" else l
            l = l+command if l == "Exec=/bin/bash resolutionx.sh" else l
            out.write(l+"\n")

Код для записи вышеуказанного в файл:

fStartUpScript = open("set_startupscript.py", "w")
fStartUpScript.write("""
#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]

name = sys.argv[1]; command = sys.argv[2]

launcher = ["[Desktop Entry]", "Name=resolutionx", "Exec=/bin/bash resolutionx.sh", "Type=Application", "X-GNOME-Autostart-enabled=true"]
file = home+"/.config/autostart/"+name.lower()+".desktop"

if not os.path.exists(file):
    with open(file, "wt") as out:     
        for l in launcher:
            l = l+name if l == "Name=resolutionx" else l
            l = l+command if l == "Exec=/bin/bash resolutionx.sh"     else l
            out.write(l+"\\n")
else:
  print("file exists, choose another name")""")
fStartUpScript.close()

Как я могу решить эту проблему?

0
задан 25 June 2015 в 21:32

1 ответ

Понимание, что должен сделать сценарий

Я боюсь, что Вы неправильно понимаете, как сценарий должен быть применен. Нет никакой причины иметь другой сценарий, пишут этот сценарий в файл вообще.

Это совпало бы с записью приложения для записи приложения; огромный обход и странная вещь сделать. необходимо просто создать сценарий:

  1. Копия / вставляет сценарий отсюда в пустой файл, сохраняет его как set_startupscript.py
  2. Назовите его с правильными аргументами:

    python3 /path/to/set_startupscript.py '<name>''<command>'
    

    где:

     '<name>'
    

    название средства запуска, которое будет произведено между кавычками, и

    '<command>'
    

    команда должна быть выполнена средством запуска, также между кавычками.

Затем это создает средство запуска в ~/.config/autostart, который выполнит команду: '<command>' на входят в систему.

Сам сценарий не должен использоваться в качестве сценария запуска, но создать средство запуска в ~/.config/autostart выполнять команду.

Скопируйте сценарий

ЕСЛИ необходимо было бы скопировать сценарий по некоторым причинам (но снова: почему), или необходимо скопировать любой другой файл в другое местоположение, в python3, использование:

shutil.copyfile(sourcefile, target)
1
ответ дан 4 October 2019 в 02:15

Другие вопросы по тегам:

Похожие вопросы: