Python glob路径问题

5

我有一个关于在Python中使用glob的问题。

我想知道为什么路径显示反斜杠而不是正斜杠?

例如C:/用户/名称/桌面/Pythonfiles\excel.xlsx

我的脚本是

import glob
excel_list = (glob.glob("C:/Users/Name/Desktop/Pythonfiles/*.xlsx"))

这是我得到的输出:

['C:/Users/Name/Desktop/PythonFiles\\19282.xlsx', 'C:/Users/Name/Desktop/PythonFiles\\19557.xlsx', 'C:/Users/Name/Desktop/PythonFiles\\19667.xlsx', 'C:/Users/Name/Desktop/PythonFiles\\19742.xlsx', 'C:/Users/Name/Desktop/PythonFiles\\CEImport.xlsx']

任何帮助都将是非常感激的,谢谢。

如果您使用正斜杠,则无需使用双斜杠或r前缀 - Edeki Okoh
请问您能否发布您所收到的完整输出? - Greg
4
这个回答解决了你的问题吗?Python中的Windows路径 - Edeki Okoh
1
glob 最终使用 os.path.join 创建一个文件路径,该路径由 C:/Users/Name/Desktop/Pythonfilesfoo.xlsx 组成。如果 os.path.sep 是反斜杠,则无论参数中出现什么,都会使用它。此外,只有在需要隔离任何“魔法”字符时,才会将参数分解为其组成目录。 - chepner
@Greg这是我得到的输出:['C:/Users/Name/Desktop/PythonFiles\19282.xlsx', 'C:/Users/Name/Desktop/PythonFiles\19557.xlsx', 'C:/Users/Name/Desktop/PythonFiles\19667.xlsx', 'C:/Users/Name/Desktop/PythonFiles\19742.xlsx', 'C:/Users/Name/Desktop/PythonFiles\CEImport.xlsx'] - BPCAL
3个回答

2

\/都可以用作路径分隔符,但如果您想将路径规范化为统一格式,请使用os.path.normpath

excel_path = [os.path.normpath(i) for i in glob.glob("C:/Users/Name/Desktop/Pythonfiles/*.xlsx")]

#output
['C:\\Users\\Name\\Desktop\\PythonFiles\\19282.xlsx',
 'C:\\Users\\Name\\Desktop\\PythonFiles\\19557.xlsx',
 'C:\\Users\\Name\\Desktop\\PythonFiles\\19667.xlsx',
 'C:\\Users\\Name\\Desktop\\PythonFiles\\19742.xlsx',
 'C:\\Users\\Name\\Desktop\\PythonFiles\\CEImport.xlsx']


0
根据这个答案这里,在Python文件路径中'/'和'\'是可以互换的。

没问题,斜杠最终并不是问题,谢谢! - BPCAL

0

你在字符串路径中可能会得到双反斜杠 (\\),因为你使用的是 Windows 系统,它使用单反斜杠 (\) 而不是单斜杠 (/)。请注意,\\\ 是相同的,因为反斜杠用于特殊字符。

此外,正如 Greg's answer 所提到的,Python 文件路径中反斜杠 \ 和斜杠 / 是可以互换的,因此你不必担心它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接