Python 如何获取桌面位置?
我在Windows上使用Python,我希望脚本的一部分能够将文件从某个目录(我知道它的路径)复制到桌面 我用了这个:Python 如何获取桌面位置?,python,copy,desktop,filepath,Python,Copy,Desktop,Filepath,我在Windows上使用Python,我希望脚本的一部分能够将文件从某个目录(我知道它的路径)复制到桌面 我用了这个: shutil.copy(txtName, '%HOMEPATH%/desktop') 而txtName是txt文件的名称(带完整路径) 我得到一个错误: IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP' 有什么帮助吗 我希望脚本可以在任何计算机上运行。您可以使用os.environ[“HOM
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)
我还不能发表评论,但基于使用“桌面”将位置连接到用户路径的解决方案限制了设备,因为桌面可以而且经常被重新映射到非系统驱动器。
要获取实际位置,应使用windows注册表。。。或通过C类型(如)执行特殊功能这在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目录,而不是假设它总是
“桌面”
以下是正确答案:对于3.5+版本,您可以使用pathlib:
import pathlib
desktop = pathlib.Path.home() / 'Desktop'
@如果你觉得它有帮助或者解决了你的问题,请投赞成票或者接受。你和你上面的人都有很好的答案。希望我能接受你们两个。现在投票了。非常感谢。在Windows和Linux中,这似乎都有效:
os.path.expanduser(“~/Desktop”)
不需要内部的os.path.join()
调用。另外,第一个解决方案也适用于Windows:不需要第二个解决方案。@ChauLoi是的,我在Mac上测试过,它提供给您useros.path.expanduser(“~/Desktop”)的父文件夹
适用于Linux和Windows@dashesy:你应该回答这个问题-它比其他任何一个都好。这在非英语的Windows机器上有效吗?当我在2010年左右检查时,情况并非如此。@EricLebigot我没有非英语的Windows机器要测试,你能告诉我们吗?这将在Windows上生成'C:\\Users\\user/Desktop'
。。。这将在Windesktop=os.path.expanduser(“~\\desktop”)
@Sabrina上运行,这是有效的,在较新的Widows中,您可以使用/
,因为您不必逃避它,所以这是首选。如果您愿意,您可以使用os.path.normpath
。它在非英语(西班牙语)机器上工作,并且它实际输出Sabrina所说的内容。所有答案(GPCracker除外)都不正确,因为桌面文件夹可以移到HOMEPATH之外。我的桌面不在我的C:\,所有其他选项都不能直接工作。我喜欢这个解决方案!这似乎是实现这一点的现代方法。这个答案本质上是错误的:它只适用于Linux。:)真的:)我可能已经累了,忘了窗户的事。