Как поместить определенные символы в определенное место в файле?

Я хочу иметь возможность добавить определенный символ в свой файл, используя код Python.

Я пытался использовать функции чтения, то есть списки, но они выдавали ошибку «TypeError: 'builtin_function_or_method».

Я считаю, что это означает, что python не может записать символ в определенное место, используя функцию списка.

Неправильный способ:

файл: 1)5

Код:

while true:
  with open ('file','w') as f:
    f.writeline[0]=+1
  with open ('file','r') as f:
    fc = f.read()
    print (fc)

Ожидаемый результат: 5,6,7,8,9,10,11,12,13,14,15....

Я предполагал, что эта строка кода будет увеличивать пятерку, пока я не остановлю программу, но вместо этого она отправила код ошибки, описанный ранее. Есть ли способ написать код, чтобы он работал так, как ожидалось?

Ваш синтаксис неверен, как он может работать? Пожалуйста, исправьте свой пост.

knh190 13.06.2019 04:42

Всегда ли новый текст имеет ту же длину (в байты), что и старый?

Davis Herring 13.06.2019 04:50

@DavisHerring Ну, это зависит. Если я не добавлю в файл больше информации, он должен остаться прежним, не так ли? Все, что я делаю, это заменяю информацию в файле другим целым числом.

Samuel Kuld 13.06.2019 04:57

@knh190, исправлено. Я забыл написать "Правда" с большой буквы

Samuel Kuld 13.06.2019 04:57

Пожалуйста, опишите более подробно данные вашего файла, ваш код и что вы ожидаете??

Lê Tư Thành 13.06.2019 05:31

@ LêTưThành, данные файла предназначены только для представления целого числа, которое необходимо изменить с помощью указанного кода. Выполнение программы должно продолжать зацикливаться и добавлять одно целое значение к «5» в файле. Мой код надеется, что программа увидит «линию записи» и заметит «[]». Он прочитает значение в скобках и увидит, что я хочу изменить индекс 0 на значение, превышающее это (после просмотра «= + 1»). Это помогает прояснить?

Samuel Kuld 13.06.2019 05:40

@TheFlooBearer, просто дайте нам example input и example output (после завершения цикла)

Lê Tư Thành 13.06.2019 05:43

@ LêTưThành, ладно, кажется, я понимаю, что ты имеешь в виду. Перепроверьте это, извините, если я не ясно. Я не совсем уверен, как выразить это словами, я думаю..

Samuel Kuld 13.06.2019 05:49

@TheFlooBearer вы хотите записать в файл список целых чисел или символов?

Avm-x 13.06.2019 06:05

@Amiy, я просто хотел бы изменить единственное значение в файле несколько раз, прежде чем закрыть программу

Samuel Kuld 13.06.2019 06:08

@TheFlooBearer, если вы хотите хранить данные в своем файле и изменять их, то почему бы не использовать форматы, используемые для хранения данных, такие как JSON.

Avm-x 13.06.2019 06:10
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
11
41
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Во-первых, ваш код будет иметь бесконечный цикл:

while True: У вас есть какая-нибудь контрольная переменная?

Во-вторых, я не думаю, что этот вам подойдет: f.writeline[0]=+1

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

check = True
# file = '1)5'
add_val = 5
while check:
    open('file', 'w').write(add_val + ",")
    add_val += 1
    if add_val > 20: # condition to break the while loop
        check = False
f = open('file','r').read()
print (f)

Хорошо, я упустил одну вещь. Я надеюсь заменить определенный символ в моем файле (В противном случае большое спасибо. Люди обычно не так терпеливы, когда дело доходит до помощи). Например: Содержимое файла:Джону шесть лет Если бы я хотел заменить букву "Дж" в слове "Джон", что бы я сделал? И как бы я сделал это в операторе цикла, если бы переменная изменилась? (Я верю, что Джейкоб сделал хороший кусок кода, так что позвольте мне вернуться к вам по этому поводу)

Samuel Kuld 13.06.2019 06:19
Ответ принят как подходящий

По сути, вам нужно будет создать функцию для обновления одного символа. Я думаю, это сработает, но я буквально написал это буквально за три минуты, так что будьте осторожны...

def write_at_index(filename,y_pos,x_pos,character):
    """Write a character 'character' at the given index"""
    lines = 0 //begin lines outside scope of the with statement.
    with open(filename,"r") as file:
        lines = file.readlines()
        if len(lines)<y_pos:
            raise Exception('y pos out of bounds')
        if len(lines[y_pos]) < x_pos
            raise Exception('x_pos out of bounds')
        lines[y_pos][x_pos] = character
    with open(filename,"w") as file:
        file.writelines(lines)

Если серьезно. Проверьте код, а не просто возьмите его. Обычно я неплохо разбираюсь в python, но файловый ввод-вывод — мое слабое место в каждом языке.

Jakob Lovern 13.06.2019 06:44

Я сделал, Идея правильная, но я немного исправил код. Я понимаю, что вы пытались сделать

Samuel Kuld 13.06.2019 17:21

Не могли бы вы отредактировать мой ответ, чтобы включить ваши правки?

Jakob Lovern 13.06.2019 21:58

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