Python IOError: [Errno 13] В linux отказано в разрешении? - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу записать символ строки в файл, но я получаю сообщение об ошибке, подобное этому IOError: [Errno 13] Permission denied: '/python/add.txt'. как это решить?

это мой код

q = open('/python/add.txt','r')
a = ['123', '234', '456']
lst = []
for line in q:
    for word in a:
        if word in line:
            line = line.replace(word + "\n",'')
    lst.append(line)
q.close()
z = open(r'/python/add.txt','w+')
for line in lst:
    z.write(line)
z.close()

1 Ответ

0 голосов
/ 27 апреля 2020

Вы пытаетесь записать в папку с именем "python" на уровне root файловой системы. Это, вероятно, недопустимо.

Я предполагаю, что вы случайно поместили / в начало пути к файлу (делая его абсолютным), когда вы намеревались написать "python/add.txt", который является относительным файлом путь.

Вы также должны использовать конструкцию with при открытии файлов, чтобы обеспечить их последующее закрытие.

Более чистая версия с использованием синтаксиса with и улучшенных имен переменных:


add_file_path = 'python/add.txt'
words_to_replace = ['123', '234', '456']
replaced_lines = []
with open(add_file_path, 'r') as f:
    for line in f:
        for word in words_to_replace:
            if word in line:
                line = line.replace(word + "\n",'')
        lst.append(line)

with open(add_file_path, 'w+') as f:
    for line in replaced_lines:
        f.write(line)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...