如何获取桌面位置?
How to get Desktop location?
我在 Windows 上使用 Python,我希望脚本的一部分将文件从某个目录(我知道它的路径)复制到桌面。
我用过这个:
shutil.copy(txtName, '%HOMEPATH%/desktop')
虽然 txtName
是 txt 文件的名称(带完整路径)。
我收到错误:
IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP'
有什么帮助吗?
我希望脚本可以在任何计算机上运行。
您可以使用os.environ["HOMEPATH"]
获取路径。现在它实际上是在不替换实际路径的情况下尝试找到 %HOMEPATH%/Desktop
。
可能是这样的:
shutil.copy(txtName, os.path.join(os.environ["HOMEPATH"], "Desktop"))
在 Unix 或 Linux 上:
import os
desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')
在 Windows 上:
import os
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
并在您的命令中添加:
shutil.copy(txtName, desktop)
我还不能评论,但是基于 'Desktop' 将位置加入用户路径的解决方案的应用有限,因为桌面可以而且经常被重新映射到非系统驱动器。
要获得真实位置,应使用 windows 注册表...或通过
等 ctypes 的特殊功能
这适用于 Windows 和 Linux:
import os
desktop = os.path.expanduser("~/Desktop")
# the above is valid on Windows (after 7) but if you want it in os normalized form:
desktop = os.path.normpath(os.path.expanduser("~/Desktop"))
试试这个:
import os
file1 =os.environ["HOMEPATH"] + "\Desktop\myfile.txt"
所有这些答案本质上都是错误的:它们只适用于英语会话。
您应该检查 XDG 目录,而不是假设它总是 'Desktop'
。
正确答案如下:How to get users desktop path in python independent of language install (linux)
对于 3.5+,您可以使用路径库:
import pathlib
desktop = pathlib.Path.home() / 'Desktop'
@tpearse 接受的答案的补充:
在嵌入式环境中(c++ 程序调用 python 环境)
os.path.join(os.environ["HOMEPATH"], "Desktop")
是唯一有效的方法。好像
os.path.expanduser("~/Desktop")
不是 return 嵌入式环境的可用路径(至少在我的环境中不是;但是 visual studio 中的某些环境设置可能在我的设置中丢失)
我在 Windows 上使用 Python,我希望脚本的一部分将文件从某个目录(我知道它的路径)复制到桌面。
我用过这个:
shutil.copy(txtName, '%HOMEPATH%/desktop')
虽然 txtName
是 txt 文件的名称(带完整路径)。
我收到错误:
IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP'
有什么帮助吗?
我希望脚本可以在任何计算机上运行。
您可以使用os.environ["HOMEPATH"]
获取路径。现在它实际上是在不替换实际路径的情况下尝试找到 %HOMEPATH%/Desktop
。
可能是这样的:
shutil.copy(txtName, os.path.join(os.environ["HOMEPATH"], "Desktop"))
在 Unix 或 Linux 上:
import os
desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')
在 Windows 上:
import os
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
并在您的命令中添加:
shutil.copy(txtName, desktop)
我还不能评论,但是基于 'Desktop' 将位置加入用户路径的解决方案的应用有限,因为桌面可以而且经常被重新映射到非系统驱动器。 要获得真实位置,应使用 windows 注册表...或通过
等 ctypes 的特殊功能这适用于 Windows 和 Linux:
import os
desktop = os.path.expanduser("~/Desktop")
# the above is valid on Windows (after 7) but if you want it in os normalized form:
desktop = os.path.normpath(os.path.expanduser("~/Desktop"))
试试这个:
import os
file1 =os.environ["HOMEPATH"] + "\Desktop\myfile.txt"
所有这些答案本质上都是错误的:它们只适用于英语会话。
您应该检查 XDG 目录,而不是假设它总是 'Desktop'
。
正确答案如下:How to get users desktop path in python independent of language install (linux)
对于 3.5+,您可以使用路径库:
import pathlib
desktop = pathlib.Path.home() / 'Desktop'
@tpearse 接受的答案的补充:
在嵌入式环境中(c++ 程序调用 python 环境)
os.path.join(os.environ["HOMEPATH"], "Desktop")
是唯一有效的方法。好像
os.path.expanduser("~/Desktop")
不是 return 嵌入式环境的可用路径(至少在我的环境中不是;但是 visual studio 中的某些环境设置可能在我的设置中丢失)