Python 为什么我的文件路径同时包含正斜杠和反斜杠?
当我检查脚本中的Python 为什么我的文件路径同时包含正斜杠和反斜杠?,python,windows,python-3.x,pycharm,Python,Windows,Python 3.x,Pycharm,当我检查脚本中的\uuuuu file\uuuu变量时,我看到正向斜杠一直到某一点,然后文件路径切换到反向斜杠对 如果我在以下文件路径下的脚本中C:\WorkFiles\python\wat\u disposition\wat\u disposition\\uuuu init\uuuuuuuuuuuuuuuupy 我在脚本中运行print(\uuuuu file\uuuuu),得到以下输出: 'C:/WorkFiles/python/wat_disposition\\wat_dispositio
\uuuuu file\uuuu
变量时,我看到正向斜杠一直到某一点,然后文件路径切换到反向斜杠对
如果我在以下文件路径下的脚本中C:\WorkFiles\python\wat\u disposition\wat\u disposition\\uuuu init\uuuuuuuuuuuuuuuupy
我在脚本中运行print(\uuuuu file\uuuuu)
,得到以下输出:
'C:/WorkFiles/python/wat_disposition\\wat_disposition\\__init__.py'
为什么它同时显示前斜杠和后斜杠?不应该是这样或那样吗
我之所以担心,是因为我想确保我的文件路径对以后的文件写入操作有效
注意:我正在Windows 7上的Pycharm中运行python 3.x当您指定python脚本的相对路径时,会出现这种情况。相对路径成为文件的一部分,它可能会与基于当前工作目录(%CD%)和对脚本调用的相对路径的目录分隔符混合使用
import os
__file__ = os.path.abspath(__file__)
。。。正如上面@eryksun所指出的那样,这是一个技巧。Windows上的os.path.abspath()始终将其转换为反斜杠。作为一种风格,我不想重写我认为是常量的东西,所以我通常会将os.path.abspath()包装在我对文件的单一使用上,确切地说,这是哪一版本的Python?在3.5.2或2.7.12中,我无法从命令提示符中复制该命令。导入模块时,您可以使用
\uuu file\uuuu=os.path.abspath(\uu file\uuuu)
来修复路径。通常,可以将斜杠和反斜杠与Windows API混合并匹配,除非在扩展路径中使用\?\
前缀。此外,命令行程序和内置cmd.exe命令通常需要反斜杠作为路径分隔符,因为它们使用斜杠作为选项。