Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的文件路径同时包含正斜杠和反斜杠?_Python_Windows_Python 3.x_Pycharm - Fatal编程技术网

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命令通常需要反斜杠作为路径分隔符,因为它们使用斜杠作为选项。