首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中使用/和\\指定文件夹位置有什么区别?

在python中使用/和\\指定文件夹位置有什么区别?
EN

Stack Overflow用户
提问于 2017-10-18 08:06:55
回答 5查看 6.8K关注 0票数 3

我在Windows 10上使用pythonv3.6。当指定一个字符串来表示目录位置时,下面的两种方法有什么区别呢?

代码语言:javascript
复制
folder_location = 'C:\\Users\\username\\Dropbox\\Inv'
folder_location = 'C:/Users/username/Dropbox/Inv'

这是我刚刚发布的另一个问题的后续问题。当我使用\\而不是/时,我的问题解决了。

这个selenium配置文件下载到自定义文件夹中有什么问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-10-18 08:13:01

在Unix系统上,文件夹分隔符是/,而在Windows上,分隔符是\。不幸的是,这个\在大多数编程语言和基于文本的格式(包括C、Python等)中也是一个转义字符。奇怪的是,windows路径中不允许使用/字符。

因此,windows上的Python在处理文件系统时可以同时接受/\作为文件夹分隔符,这是为了方便起见。但是\必须由另一个\转义(当然,除非您使用原始字符串(如r'backslashes are now normal characters \\\ !') )。

另一方面,Selenium会将值写入Firefox首选项中,与Python不同,它需要适当的分隔符。这就是为什么在您的示例中使用正斜杠不起作用的原因。

票数 5
EN

Stack Overflow用户

发布于 2017-10-18 08:18:27

默认情况下,Windows使用反斜杠作为文件/文件夹分隔器,\\是转义的\。windows也支持POSIX兼容的文件/文件夹分隔器/。但是,您使用的库(在您的示例中无法识别)也需要支持它。

票数 2
EN

Stack Overflow用户

发布于 2017-10-18 08:16:57

Windows继承反斜杠作为来自Microsoft的路径分隔符。DOS最初不支持子目录,并选择使用(在美国键盘上)容易输入的斜杠/字符作为命令行开关。

在DOS 2中引入子目录时,斜杠/或反斜杠\都用作路径分隔符,但要在命令行上使用斜杠,则必须重新配置开关字符,这是后来完全删除的特性。

因此,某些命令的命令行在没有前面空格的情况下查找开关(如dir/w)是不能使用正斜杠的地方(这与命令行作为单个字符串传递,不像POSIX在列表中传递不同的参数)有关。还有一些写得不好的代码,这些代码试图在反斜杠上拆分,而不知道斜杠也是路径分隔符。

它有时还会因任何一个具有其他含义的字符而变得复杂,例如\是字符串文本中的转义字符;这就是为什么除非使用原始字符串r'foo\bar',否则使用\\

我知道的另一个路径分隔符是经典的Mac,它使用冒号:。Python通过在os.pathpathlib中包含合理的例程来处理这些差异。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46805462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档