Используя Python 2.6 в Windows, у меня есть функция, которая должна принимать имя пути в качестве аргумента. Я сталкиваюсь с проблемами, когда передаются определенные пути.
C:\users\bob\something.png #this is handled no prob.
C:\users\bob\nothing.png #this generates a WindowsError
C:\users\bob\test.png #this also generates a WindowsError
Я понимаю, что \n
в пути «ничего» интерпретируется как новая строка, а \t
в пути «тест» интерпретируется как вкладка.
Если я распечатаю имена путей, это то, что, похоже, происходит.
print os.path.abspath("C:\users\bob\nothing.png")
C:\users\bob
othing.png
То же самое для «тестового» пути, за исключением табуляции вместо новой строки.
Единственное, что я придумал до сих пор, это проверить, есть ли \n
или \t
в имени пути, а затем обработать его соответствующим образом, но, безусловно, должен быть лучший способ.
if '\n' in path_name:
#escape slash, move on
Что может быть лучше?