如何获取桌面位置?

时间:2015-12-14 20:15:05

标签: python copy desktop filepath

我在Windows上使用Python,我希望我的脚本的一部分将文件从某个目录(我知道它的路径)复制到桌面。

我用过这个:

shutil.copy(txtName, '%HOMEPATH%/desktop')

虽然txtName是txt文件的名称(包含完整路径)。

我收到错误:

IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP'

有任何帮助吗?

我希望脚本可以在任何计算机上运行。

7 个答案:

答案 0 :(得分:24)

在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)

答案 1 :(得分:12)

您可以使用os.environ["HOMEPATH"]来获取路径。现在它确实试图找到%HOMEPATH%/Desktop而不替换实际路径。

可能是这样的:

shutil.copy(txtName, os.path.join(os.environ["HOMEPATH"], "Desktop"))

答案 2 :(得分:7)

这适用于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"))

答案 3 :(得分:5)

对于3.5+版本,您可以使用pathlib:

import pathlib

desktop = pathlib.Path.home() / 'Desktop'

答案 4 :(得分:3)

所有这些答案本质上都是错误的:它们仅适用于英语课程。

您应该检查XDG目录,而不是假设它总是'Desktop'

这是正确的答案:How to get users desktop path in python independent of language install (linux)

答案 5 :(得分:2)

我还无法评论,但基于将位置加入到具有“桌面”的用户路径的解决方案限制了设备,因为桌面可以并且经常被重新映射到非系统驱动器。 要获得真实位置,应使用Windows注册表...或通过https://stackoverflow.com/a/626927/7273599

等ctypes的特殊功能

答案 6 :(得分:1)

尝试一下:

import os
file1 =os.environ["HOMEPATH"] + "\Desktop\myfile.txt"