Найти - Пользователи
Полная версия: Редактирование файла
Начало » Python для новичков » Редактирование файла
1 2
Sandr
Подскажите, что не так в этом коде?
Он должен открывать файл, запоминать его содержимое, и потом добавлять к его содержимому текст “. Это новый текст файла” и сохранять файл. Я только первый день изучаю питон, так что прошу сильно не пинать))

f = open('data.txt')
text = f.read()
print('Содержимое файла \n'+text)
print('\n———————————-\n')
f = open('data.txt','w')
f.write(text+'. Это новый текст файла')
#close()
print(text)
print('\n\n\n\n\n///////\n\nСодержимое файла\n\n')
print(open('data.txt').read())
Sandr
Версия питона 3.2
doza_and
перед открытием на запись надо было закрыть файл открытый на чтение
1 используйте разные файлы
2 сильно помогает конструкция:
with open("a","r") as f:
text=f.read()
она автоматически закроет файл.
Файл можно было открыть в режиме “r+”
тогда f.seek(0) и пишите без закрывания
Sandr
doza_and
перед открытием на запись надо было закрыть файл открытый на чтение
1 используйте разные файлы
2 сильно помогает конструкция:
with open("a","r") as f:
text=f.read()
она автоматически закроет файл.
Файл можно было открыть в режиме “r+”
тогда f.seek(0) и пишите без закрывания
Теперь сделал так:
f = open('data.txt')
text = f.read()
print('Содержимое файла \n'+text)
print('\n———————————-\n')
close()
f = open('data.txt','w')
f.write(text+'. Это новый текст файла')
#close()
print(text)
print('\n\n\n\n\n///////\n\nСодержимое файла\n\n')
print(open('data.txt').read())

Всё равно не работает((

К сожалениею не получится использовать разные файлы, т.к. нужно всё действия производить именно над одним файлом.
Можете подсказать где мне нужно исправить в моём коде? Без использования каких-либо других конструкций?
И ещё, не могли бы вы сказать, где можно прочитать про режимы открытия файлов?
doza_and
А у меня все работает
f=open('data.txt')
text = f.read()
print('Содержимое файла \n'+text)
print('\n----------------------------------\n')
f.close()
f = open('data.txt','w')
f.write(text+'. Это новый текст файла')
#close()
print(text)
print('\n\n\n\n\n///////\n\nСодержимое файла\n\n')
f.close()
print(open('data.txt').read())
написал ведь: файл закрывайте чтобы сменить режим чтение <-> запись
или так:
with open("data.txt","r+") as f:
txt=f.read()
f.seek(0)
f.write(txt+"------------")
постарайтейсь писать так - чтобы не требовалось следить за файлами коннекшенами и т.д. Чтобы в коде принципиально не могло быть ошибки :).
doza_and
да для вашей задачи наверное еще лучше
open("data.txt","a").write("asdasd")
Есть еще один глобальный совет - иногда полезно читать текст который появляется при возникновении ошибки :) - ваш сиротливый close() не прошел ведь безнаказанно?
про режимы:
http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html
Sandr
doza_and
А у меня все работает
f=open('data.txt')
text = f.read()
print('Содержимое файла \n'+text)
print('\n----------------------------------\n')
f.close()
f = open('data.txt','w')
f.write(text+'. Это новый текст файла')
#close()
print(text)
print('\n\n\n\n\n///////\n\nСодержимое файла\n\n')
f.close()
print(open('data.txt').read())
написал ведь: файл закрывайте чтобы сменить режим чтение <-> запись
или так:
with open("data.txt","r+") as f:
txt=f.read()
f.seek(0)
f.write(txt+"------------")
постарайтейсь писать так - чтобы не требовалось следить за файлами коннекшенами и т.д. Чтобы в коде принципиально не могло быть ошибки :).
Всё, я какбэ закрывал, но не так)) Я думал, что close() это и есть закрытие файла) А оказалось, что это f.close() :)
Спасибо))
iBiZoNiX
При открытии файла
op = open('txt.txt','r+')
op - дескриптор файла, с ним и проделываются непосредственно операции: чтения,запись,закрытия.
Sandr
iBiZoNiX
При открытии файла
op = open('txt.txt','r+')
op - дескриптор файла, с ним и проделываются непосредственно операции: чтения,запись,закрытия.
Да это я уже понял) (ждал тебя в аське пол дня, а ты не появился(( вот и написал сюда)
Sandr
Кстати, чтобы не создавать подобных тем, хотелось бы ещё несколько вопросов задать, связанных с операциями над файлами.

К примеру, как можно создать файл на диске C (т.е. прямо в корне), если такое возможно, конечно..
Как можно удалить, переименовать файл, создать или удалить нужную папку?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB