在 python 中的函数内将 windows 路径转换为 pathlib.WindowsPath()
Converting windows paths to pathlib.WindowsPath() within a function in python
为清楚起见进行了编辑
我需要能够将 windows 路径 直接从文件资源管理器 复制并粘贴到一个函数中,然后将其转换为 pathlib.WindowsPath()
对象。
例如:我想要的是这样的东西
def my_function(my_directory):
my_directory = pathlib.WindowsPath(my_directory) #this is the important bit
files = [e for e in my_directory.itirdir()]
return(files)
new_list = my_function('C:\Users\user.name\new_project\data')
print(new_list[0])
OUT[1] 'C:\Users\user.name\new_project\data\data_set_1'
当我尝试此操作时出现错误:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape (<string>, line 1)
现在我知道这是因为我的字符串中的 \n
我要传递给函数的 windows 路径,如果我将它作为r'C:\Users\user.name\new_project\data'
但这不是解决我的问题的实用方法。有没有一种方法可以通过在函数?
中将 windows 路径转换为原始字符串 来解决此问题
我试过:
def my_function(my_directory):
input = fr'{my_directory}'# converting string to raw string
path = pathlib.WindowsPath(input)
files = [e for e in path.itirdir()]
return(files)
new_list = my_function('C:\Users\user.name\new_project\data')
print(new_list[0]
OUT[1] 'C:\Users\user.name\new_project\data\data_set_1'
但没有快乐。
如有任何帮助,我们将不胜感激。
试试这个。向 dir 添加双反斜杠,这样 python 就不会将单反斜杠解释为转义字符
new_list = my_function('C:\Users\user.name\new_project\data')
您只需将其转换为“原始”字符串即可保持简单。这可以在任何其他路径可以使用的地方使用。 (os.path、路径库等)
mypath = r'C:\Users\user.name\new_project\data'
打印('mypath is =',我的路径)
输出:
路径是 = C:\Users\user.name\new_project\data
我用.encode('unicode escape')
解决了这个问题
例如:
from pathlib import Path
def input_to_path():
user_input = input('Please copy and paste the folder address')
user_input.encode('unicode escape')
p = Path(user_input)
return(p)
为清楚起见进行了编辑
我需要能够将 windows 路径 直接从文件资源管理器 复制并粘贴到一个函数中,然后将其转换为 pathlib.WindowsPath()
对象。
例如:我想要的是这样的东西
def my_function(my_directory):
my_directory = pathlib.WindowsPath(my_directory) #this is the important bit
files = [e for e in my_directory.itirdir()]
return(files)
new_list = my_function('C:\Users\user.name\new_project\data')
print(new_list[0])
OUT[1] 'C:\Users\user.name\new_project\data\data_set_1'
当我尝试此操作时出现错误:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape (<string>, line 1)
现在我知道这是因为我的字符串中的 \n
我要传递给函数的 windows 路径,如果我将它作为r'C:\Users\user.name\new_project\data'
但这不是解决我的问题的实用方法。有没有一种方法可以通过在函数?
我试过:
def my_function(my_directory):
input = fr'{my_directory}'# converting string to raw string
path = pathlib.WindowsPath(input)
files = [e for e in path.itirdir()]
return(files)
new_list = my_function('C:\Users\user.name\new_project\data')
print(new_list[0]
OUT[1] 'C:\Users\user.name\new_project\data\data_set_1'
但没有快乐。
如有任何帮助,我们将不胜感激。
试试这个。向 dir 添加双反斜杠,这样 python 就不会将单反斜杠解释为转义字符
new_list = my_function('C:\Users\user.name\new_project\data')
您只需将其转换为“原始”字符串即可保持简单。这可以在任何其他路径可以使用的地方使用。 (os.path、路径库等)
mypath = r'C:\Users\user.name\new_project\data' 打印('mypath is =',我的路径)
输出: 路径是 = C:\Users\user.name\new_project\data
我用.encode('unicode escape')
例如:
from pathlib import Path
def input_to_path():
user_input = input('Please copy and paste the folder address')
user_input.encode('unicode escape')
p = Path(user_input)
return(p)