Найти - Пользователи
Полная версия: запись в файл
Начало » Python для новичков » запись в файл
1
Tobur
Сообщение об ошибке следующее:
Traceback (most recent call last):
File "D:\mydoc\NetBeansProjects\NewPythonProject\write2.py", line 7, in <module>
U.write = (F+'\n') #Записываем первую строчку
AttributeError: 'file' object attribute 'write' is read-only
>>>
Весь код, пример из книги:

X, Y, Z = 1, 2, 3                   #числа
F = "Привет" #строка
D = {'a':1, 'b':'привет'} #словарь
L = [1,2,3] #список

U = open('datafile.txt', 'w') #создает файл для записи
U.write = (F+'\n') #Записываем первую строчку
U.write =('%s,%s,%s\n' %(X,Y,Z)) #Переобразуем числа в строки
U.write =(str(D)+'$'+str(L)+'\n') #Переобразует и добавляет между словарем и списком знак $
U.close()
Почему не разрешает писать в файл и выдает ошибку только для чтения? я же поставил атрибут ‘w’ все как написано в книге. Файл создается.
Zubchick
>AttributeError: ‘file’ object attribute ‘write’ is read-only

в созданный файл нельзя писать. Добавьте ему в свойствах разрешение на запись.
Ed
Может лучше знак равенства убрать?
Конструкция U.write = (F+'\n') это не запись в файл, а присваивание U.write значения (F+'\n')
А U.write является ридонли атрибутом, о чем и сказано: ‘file’ object attribute ‘write’ is read-only
Tobur
т.е. ручками только? правой кнопкой по файлу - свойства - только чтение(убрать галочку)
в книге написано, что если ставить атрибут ‘w’ то создается файл и в него можно вести запись, если ставить атрибут ‘r’, то только чтение. Почему у меня создается файл только для чтения?
И вот только что посмотрел, у меня не стоит галочка в свойствах атрибуты только чтение. То есть в свойствах все Ок. Может в версии питона дело, хотя не должно книга по 2.6 и пайтон 2.6
expee
Знак присваивания здесь не нужен.
U.write(F+'\n')                  #Записываем первую строчку
U.write('%s,%s,%s\n' %(X,Y,Z)) #Переобразуем числа в строки
U.write(str(D)+'$'+str(L)+'\n') #Переобразует и добавляет между словарем и списком знак $
U.close()
Tobur
Ed
Может лучше знак равенства убрать?
Конструкция U.write = (F+'\n') это не запись в файл, а присваивание U.write значения (F+'\n')
А U.write является ридонли атрибутом, о чем и сказано: ‘file’ object attribute ‘write’ is read-only
сейчас попробовал вместо ‘=’ поставить ‘==’, в файл ничего не записало, но и ошибок вроде не выдало, рестартнулось ток
>>> ================================ RESTART ================================
Tobur
expee
Знак присваивания здесь не нужен.
ура, оно, спасибки
Zubchick
А, черт, я тока на ошибку посмотрел :D
Ed
Tobur
Ed
Может лучше знак равенства убрать?
сейчас попробовал вместо ‘=’ поставить ‘==’
Разницу между убрать и поставить еще один осознаете?
Tobur
Ed
Разницу между убрать и поставить еще один осознаете?
извините ^_^ не доглядел, верней прочитал, думал свое и как итог 8-(
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