Windows环境下Python生成的deneme.txt文件路径异常,无法定位
我执行以下Python代码创建deneme.txt文件:
dosya = open("deneme.txt", "w") print("Ben Python, Monty Python!", file=dosya) dosya.close()
之后执行代码获取当前工作目录:
import os os.getcwd()
得到的结果是:
/home/f515c326-589b-4129-8fbc-af1053ae8b58
这个路径是类Linux系统格式,我在Windows文件资源管理器和CMD中都找不到该文件,原本期望文件生成在路径:
C:\Users\Mert\Desktop
请问该文件在Windows中的实际位置在哪里?
实际位置说明
你看到的类Linux路径,肯定是在WSL(Windows子系统Linux)、Git Bash或者Cygwin这类Linux兼容环境里运行的Python,这类环境的文件系统和Windows主系统隔离,对应位置分两种情况:
WSL 1:文件存放在Windows系统的隐藏目录中,具体路径为:
C:\Users\Mert\AppData\Local\Packages\<WSL发行版包名>\LocalState\rootfs\home\f515c326-589b-4129-8fbc-af1053ae8b58其中
<WSL发行版包名>是你安装的Linux发行版对应的文件夹,比如Ubuntu的包名类似CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc,可以去C:\Users\Mert\AppData\Local\Packages目录下找匹配的名称。WSL 2:WSL 2使用虚拟磁盘存储文件,无法直接访问rootfs目录,但可以通过Windows资源管理器访问WSL的文件系统,输入以下路径即可打开目标目录:
\\wsl$\<你的发行版名称>\home\f515c326-589b-4129-8fbc-af1053ae8b58比如你装的是Ubuntu,就输入
\\wsl$\Ubuntu\home\f515c326-589b-4129-8fbc-af1053ae8b58。
另外还有个更简单的方法:在运行Python的Linux终端里执行explorer.exe .,系统会直接在Windows资源管理器中打开当前工作目录,你就能直接看到deneme.txt文件。
让文件直接生成到桌面的方法
如果想直接把文件创建在Windows桌面,修改Python代码时用绝对路径即可:
# Windows格式路径(注意反斜杠要转义) dosya = open("C:\\Users\\Mert\\Desktop\\deneme.txt", "w") # 或者在WSL中用挂载的Windows路径(WSL会把C盘挂载到/mnt/c) dosya = open("/mnt/c/Users/Mert/Desktop/deneme.txt", "w") print("Ben Python, Monty Python!", file=dosya) dosya.close()
内容的提问来源于stack exchange,提问作者Mertua

