двойная обратная косая черта python os.path.abspath

я понимаю путь

dire=os.path.abspath(".")

и

for fileName in filter(os.path.isfile, os.listdir(path=direc))

но dire имеет C:\\ и отправляет мне следующую ошибку:

TypeError: listdir() takes no keyword arguments

когда я печатаю dire, чтобы увидеть, что содержимое печатается следующим образом:

C:\\user\\documents....

что я могу сделать, чтобы получить \, а не \\ в os.path.abspath(".")?


person Mark    schedule 11.06.2015    source источник
comment
Вы путаете представление с значением. Используйте print(dire), чтобы увидеть разницу. `\` — это нотация Python для строковых литералов, где вам нужно экранировать обратную косую черту, чтобы сохранить их значение.   -  person Martijn Pieters    schedule 11.06.2015
comment
Это direc опечатка?   -  person Bhargav Rao    schedule 11.06.2015
comment
А почему бы не попробовать использовать аргумент positional для os.listdir()? Итак, os.listdir(direc)? Обратная косая черта никогда не является причиной сообщения об ошибке о неработающих аргументах ключевого слова.   -  person Martijn Pieters    schedule 11.06.2015


Ответы (1)


Я предполагаю, что под print вы подразумеваете repr.

s = 'C:\\'
s
>>> 'C:\\'
print(s)
>> C:\

Обратите внимание, что при печати нет ни двойных \\, ни '

Другой момент - ошибка TypeError: listdir() takes no keyword arguments
, так почему бы не попробовать:

for fileName in filter(os.path.isfile, os.listdir(direc))

вместо

for fileName in filter(os.path.isfile, os.listdir(path=direc))
person DuniC    schedule 11.06.2015