Получить путь пользователя при использовании двойной обратной косой черты (Python) - PullRequest
0 голосов
/ 14 февраля 2019

Я ищу способ получить текущее имя пользователя в пути, когда путь имеет двойную обратную косую черту.Вот мой пример кода:

import getpass
import pickle

no_user_path = pickle.load(open("C:\\Users\\{}\\Desktop\\data.dat", "rb"))
path = no_user_path.format(getpass.getuser())

print(path)

Здесь я пытаюсь перейти к пути при использовании модуля pickle, но я получаю эту ошибку:

Traceback (most recent call last):
  File "C:/Users/mikur/Desktop/help.py", line 4, in <module>
    no_user_path = pickle.load(open("C:\\Users\\{}\\Desktop\\data.dat", "rb"))
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\{}\\Desktop\\data.dat'
>>> 

Как вы можете видеть этона самом деле {} не заменяется именем пользователя, почему он этого не делает?Он отлично работает только с одной обратной косой чертой, но это escape-символ и вызывает ошибку для pickle.

Что я могу сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 14 февраля 2019

Вам нужно отформатировать строку перед вызовом pickle.load()

import getpass
import pickle

data = "C:\\Users\\{}\\Desktop\\data.dat".format(getpass.getuser())

no_user_path = pickle.load(open(data, "rb"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...