我在Windows上使用Python,我希望我的脚本的一部分将文件从某个目录(我知道它的路径)复制到桌面。
我用过这个:
shutil.copy(txtName, '%HOMEPATH%/desktop')
虽然txtName
是txt文件的名称(包含完整路径)。
我收到错误:
IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP'
有任何帮助吗?
我希望脚本可以在任何计算机上运行。
答案 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"