Я использую скрипт Python для получения некоторого текста из Интернета и помещаю его в качестве комментариев к другому сценарию Python, который создается первым. Первоначально я просто использовал open()
, чтобы открыть новый скрипт Python и write()
для печати.Невозможно выполнить автогенерированный скрипт Python, закодированный в UTF8-sig
outputFile = open(fileName, 'w')
outputFile.write('#!/usr/bin/python\n')
outputFile.write('\n')
outputFile.write('# ' + lineFromTheInternet + '\n')
outputFile.write('print \'Hello, World!\'\n')
Это работает большую часть времени, создается новый сценарий, и я могу запустить его. Однако иногда текст, который я беру из Интернета, имеет символы Юникода и дает мне проблемы (UnicodeEncodeError: 'ascii' codec can't encode character u'\xd7' in position 55: ordinal not in range(128)
). Я заменил код затем:
outputFile = codecs.open(fileName, 'w', 'utf-8-sig)
outputFile.write('#!/usr/bin/python\n')
outputFile.write('\n')
outputFile.write('# ' + lineFromTheInternet + '\n')
outputFile.write('print \'Hello, World!\'\n')
И это было бы правильно создать файл, но когда я пытаюсь выполнить его я получаю ./autogenerated.py: line 1: #!/usr/bin/python: No such file or directory
Это должно быть кодирование, так как это единственное изменение, но я не знаю, как это решить.
Вы не получили сообщение об ошибке, используя python3, может быть, это вариант для вас? –