Python如何获取当前脚本所在目录实现同目录文件拷贝到U盘
解决方案
核心实现逻辑是通过Python内置的__file__变量动态获取当前脚本文件的绝对路径,再基于这个路径拼接你要读取的目标文件相对路径,完全不需要硬编码上级目录位置。
推荐实现(基于pathlib,Python3.4+内置)
import getpass import shutil from pathlib import Path # 获取当前脚本所在的目录(即MyPythonScript文件夹路径) script_root = Path(__file__).absolute().parent # 拼接目标文件相对路径,自动适配不同系统的路径分隔符 src = script_root / "testfolder" / "sometext.txt" # U盘目标路径 dst = Path("F:/") # 可选:提前判断源文件是否存在,避免运行报错 if src.exists(): shutil.copy(src, dst) print("文件拷贝成功") else: print(f"未找到源文件:{src}")
说明:
__file__是Python内置变量,存储的是当前执行的.py脚本的完整路径Path(__file__).absolute().parent会自动计算出脚本所在文件夹的绝对路径,不管你把MyPythonScript文件夹放在桌面、下载目录还是其他分区都能正确获取- 用
/运算符拼接路径,不需要手动处理Windows的\还是其他系统的/,跨平台兼容
兼容旧版本的os模块实现
如果你的Python版本低于3.4,可以用os模块实现相同逻辑:
import getpass import shutil import os # 获取当前脚本所在目录 script_root = os.path.dirname(os.path.abspath(__file__)) # 拼接源文件路径 src = os.path.join(script_root, "testfolder", "sometext.txt") dst = "F:/" if os.path.exists(src): shutil.copy(src, dst) print("文件拷贝成功") else: print(f"未找到源文件:{src}")
额外优化建议
- 可以增加U盘路径存在性判断,避免U盘未插入或者盘符变更导致报错
- 如果U盘盘符不固定,还可以通过遍历磁盘分区匹配U盘特征自动识别U盘路径,不需要硬编码F盘
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

