Почему не могу открыть файл в питоне?

Господа или я глупый или лыжи не едут, как говориться. Что я делаю не так?
В книге Марка Лутц'а есть раздел работы с файлами. Так вот к делу. Есть исходный код
myfile = open('myfile.txt'. 'w')
Я помимо команды задаю еще и адрес т.к. кидать все файлы в папку с питоном мне линукс почему то не разрешает, да и хочется с раб.стола их запускать. Так вот,мой код выглядит так
> myfile = open('home\usr\bin\Desktop\myfile.txt'. 'w')

на что мне выдает вот это
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 4-5: truncated \uXXXX escape

p.s. сижу на Ubuntu/
Вопрос, что я делаю не так? В чем ошибка?
p.s.s в Idle3 выдает именно такой слеш, пробовал сделать обратный слеш, мне выдавало стандартную
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'home/usr/bin/Desktop/myfile.txt.w
Хотя сам файл существует.
  • Вопрос задан
  • 5859 просмотров
Решения вопроса 1
@trofimovdev
Python
В дополнение к ответу
javedimka
open(r'home\usr\bin\Desktop\myfile.txt', 'w')


Нужно указывать префикс r, т.к. вы используете бэкслэш в пути к файлу.
"Нормальные" строки в Python используют бэкслэш для экранирование спец.символов (например, \n - перенос строки). Префикс r указывает интерпретатору не делать этого:
print('Hello, \n World!')
>> Hello, 
 World!

print(r'Hello, \n World!')
>> Hello, \n World!


Также очень советую использовать "правильный слэш (/), если вы сидите не на Windows (то есть путь будет /home/usr/bin/Desktop/myfile.txt)
У вас же ошибка в том, что вы указываете относительный путь (без / в начале), хотя по вашему пути видно, что вы хотели указать абсолютный путь (подробнее про разницу между ними тут).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@jaimekoyl Автор вопроса
Stanislav Pugachev, да, так и вышло, сейчас увидел. Значит я просто путь неправильно указываю, да?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы