导入自定义Python库时如何让其读取自身目录下的文件?
解决导入脚本无法读取同目录文件的问题
问题根源:当你在C:\WORK目录运行test.py时,Python的当前工作目录是C:\WORK,而非Reusable_script.py所在的C:\SCRIPTS。直接使用相对路径file1.csv会让Python在当前工作目录(WORK)下查找,自然找不到目标文件。
解决方案:动态获取脚本自身目录路径
在Reusable_script.py中,通过Python内置模块动态获取脚本所在的绝对目录,再拼接目标文件路径,就能保证无论从哪里导入,都能定位到正确的文件。
方法1:使用os模块(兼容所有Python版本)
修改Reusable_script.py中的文件读取逻辑:
import os # 获取当前脚本的绝对路径,提取其所在目录 script_directory = os.path.dirname(os.path.abspath(__file__)) # 拼接file1.csv的完整路径 csv_file_path = os.path.join(script_directory, "file1.csv") # 读取文件示例 with open(csv_file_path, "r", encoding="utf-8") as f: content = f.read() # 后续处理逻辑
方法2:使用pathlib模块(Python 3.4+推荐)
pathlib提供了更直观简洁的路径操作方式:
from pathlib import Path # 获取当前脚本所在的绝对目录 script_directory = Path(__file__).parent.resolve() # 拼接文件路径 csv_file_path = script_directory / "file1.csv" # 读取文件示例 with open(csv_file_path, "r", encoding="utf-8") as f: content = f.read() # 后续处理逻辑
注意事项
- 禁止硬编码绝对路径(比如直接写
C:\SCRIPTS\file1.csv),若后续移动脚本目录,代码会直接失效。 - 确认
file1.csv确实与Reusable_script.py在同一目录下,避免因文件名拼写错误导致查找失败。
内容的提问来源于stack exchange,提问作者otbear
相关产品推荐
相关产品推荐

