Я пытаюсь создать скрипт, который добавит зону в конец named.conf, если домен не существует (последнее вхождение маркера # - # и запись в следующую строку) , Я, кажется, попался в парадокс списка против файлового объекта. Если я открою список, я могу найти свою строку, но не могу записать файл без закрытия объекта списка, что не является хорошим решением. Если открыть файл как объект файла, я получаю сообщение об ошибке объект пытается использовать найтиPython3 найти последнюю строку вхождения, а затем написать
Traceback (most recent call last):
File "named.py", line 10, in <module>
answer = mylist.find('#--#')
AttributeError: 'list' object has no attribute 'find'
или
File "named.py", line 12, in <module>
f.write(" zone \""+name+"\" {\n")
io.UnsupportedOperation: not writable
Что такое правильный способ, чтобы открыть файл для поиска и редактирования в Python3 ?
import sys
import string
import os.path
name = input("Enter the domain to configure zone for? ")
#fd = open("named.conf", 'w')
if os.path.lexists("named.conf"):
with open('named.conf') as f:
mylist = list(f)
print(mylist)
f.write(" zone \""+name+"\" {\n")
Так что проблема именно вы видите с кодом? Это выглядит правильно для меня. Также обратите внимание, что нет такой вещи, как «закрытие объекта списка» или «открытие файла в виде списка»; то, что вы здесь делаете, открывает файл и читает его содержимое в списке. Список не нужно закрывать. – yole
код отсутствует. Где 'answer = mylist.find ('# - #')' в программе? –
вам сначала нужно открыть для написания и чтения, но даже тогда у вас будут проблемы. где вы проверяете, существует ли домен? –