#python #module
#python #модуль
Вопрос:
Сначала рассмотрим код
user = os.path.expanduser('~AppDataLocalTemp')
os.path.exists(user,'whatever.txt')
Теперь проблема в том, что когда я запускаю его, он говорит:
Обратная трассировка (последний последний вызов):
Файл «pyshell #7», строка 1, в модуле
os.path.exists(пользователь,’whatever.txt ‘)TypeError: exists() принимает ровно 1 аргумент (задано 2)
Как мне устранить проблему?
Ответ №1:
Используйте os.path.join для соединения двух фрагментов пути вместе:
os.path.exists(os.path.join(user,'whatever.txt'))
Обратите внимание, что r'whatever.txt'
это абсолютный путь, поэтому
os.path.join(user,r'whatever.txt')
возвращал бы r'whatever.txt'
, игнорируя значение user
.
Если вы хотите выполнить поиск whatever.txt
внутри user
каталога, то вам нужно использовать относительный путь, удалив обратную косую черту.
PS: Python присваивает особое значение определенным символам, которым предшествует обратная косая черта. 't'
это символ табуляции, например. Обычно вы не хотите, чтобы обратные косые черты интерпретировались таким образом в пути, поэтому — даже если все обратные косые черты в вашем сообщении интерпретируются буквально — обычно хорошей идеей является привыкнуть использовать необработанные строки (например, r'~AppDataLocalTemp'
для указания путей, чтобы позже вы не получили неожиданных сюрпризов). Или вместо этого вы могли бы использовать прямые косые черты: '~/AppData/Local/Temp'
.