python中的绝对文件夹路径

时间:2020-08-25 16:33:27

标签: python-3.x windows

我无法获得此代码来为我工作:

import os

# Define folder to search
searchFolder = "C:\Users\rohrl\OneDrive\Python\PictureCompare\MixedPictures"
os.chdir(searchFolder)
print(os.curdir)

我在第4行上不断出现Unicode错误。我在做什么错?我在Windows PC上。

2 个答案:

答案 0 :(得分:2)

Python中的"\"字符是一个字符串转义符,它引入了某些字符串字符的快捷方式。例如,字符串"\n"不包含字符\ and n。它包含换行符。 Windows路径总是在Python中引起此问题。当Python看到"\U"时,它正在寻找一些不存在的Unicode转义。

您可以在Python中使用原始字符串,只需在字符串前面加上r

searchFolder = r"C:\Users\rohrl\OneDrive\Python\PictureCompare\MixedPictures"

或者您可以养成使用双\\的习惯。 Python将\\读为单个\

searchFolder = "C:\\Users\\rohrl\\OneDrive\\Python\\PictureCompare\\MixedPictures"

答案 1 :(得分:1)

您需要转义反斜杠-或使用斜杠。 我也建议您看一下pathlib库(在这个简短的示例中没有帮助,但是pathlib使它更具有Pythonic来处理文件系统对象):

import os
import pathlib

# variant 1 - raw string
str_search_folder = r"C:\Users\rohrl\OneDrive\Python\PictureCompare\MixedPictures"
# variant 2 - escaping the backslash
str_search_folder = "C:\\Users\\rohrl\\OneDrive\\Python\\PictureCompare\\MixedPictures"
# variant 3 - my prefered, use slashes
str_search_folder = "C:/Users/rohrl/OneDrive/Python/PictureCompare/MixedPictures"

path_search_dir = pathlib.Path(str_search_folder)

os.chdir(path_search_dir)
# variant 1
print(os.curdir)
# variant 2
print(path_search_dir.cwd())