Ben*_*n L 12 python desktop copy filepath
我在Windows上使用Python,我希望我的脚本的一部分将文件从某个目录(我知道它的路径)复制到桌面.
我用过这个:
shutil.copy(txtName, '%HOMEPATH%/desktop')
Run Code Online (Sandbox Code Playgroud)
虽然txtName是txt文件的名称(带完整路径).
我收到错误:
IOError: [Errno 2] No such file or directory: '%HOMEPATH%/DESKTOP'
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我希望该脚本可以在任何计算机上运行.
小智 28
在Unix或Linux上:
import os
desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')
Run Code Online (Sandbox Code Playgroud)
在Windows上:
import os
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
Run Code Online (Sandbox Code Playgroud)
并添加您的命令:
shutil.copy(txtName, desktop)
Run Code Online (Sandbox Code Playgroud)
小智 15
您可以使用os.environ["HOMEPATH"]获取路径.现在它确实试图找到%HOMEPATH%/Desktop而不是替换实际路径.
也许是这样的:
shutil.copy(txtName, os.path.join(os.environ["HOMEPATH"], "Desktop"))
Run Code Online (Sandbox Code Playgroud)
joh*_*son 15
对于 3.5+,您可以使用 pathlib:
import pathlib
desktop = pathlib.Path.home() / 'Desktop'
Run Code Online (Sandbox Code Playgroud)
这适用于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"))
Run Code Online (Sandbox Code Playgroud)
小智 7
我还不能发表评论,但基于将位置连接到用户路径与“桌面”的解决方案具有有限的设备,因为桌面可以并且经常被重新映射到非系统驱动器。要获得真实位置,应使用 Windows 注册表...或通过 ctypes 等特殊功能,如/sf/answers/43884921/
所有这些答案本质上都是错误的:它们只适用于英语课程。
您应该检查 XDG 目录,而不是假设它始终是'Desktop'.
这是正确的答案:How to get usersdesktop path in python Independent of language install (linux)
| 归档时间: |
|
| 查看次数: |
26811 次 |
| 最近记录: |