如何编写跨计算机兼容的文件路径?Python文件读取报错解决
解决Python仅用文件名打开文件的找不到问题
方法1:让数据文件与脚本同目录
把spam.csv和你的Python脚本放在同一个文件夹里,直接用文件名就能正常读取——Python默认会在脚本的当前工作目录查找文件。
方法2:动态获取脚本所在目录
如果不想固定文件位置,可通过代码自动获取脚本的绝对目录,再拼接文件名,跨系统也能兼容路径分隔符,不管脚本部署到哪都能找到同目录下的文件:
import os import csv # 获取当前脚本的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接文件路径 file_path = os.path.join(script_dir, 'spam.csv') with open(file_path) as file: reader = csv.reader(file) spam_list = [row[0] for row in reader]
方法3:让用户指定文件位置(适合多环境部署)
如果文件和脚本无法放在同目录,可让运行代码的人手动输入路径,或者通过配置文件读取路径,灵活性拉满:
import csv # 让用户输入文件路径(也可替换为读取配置文件的逻辑) file_path = input("请输入spam.csv的路径:") with open(file_path) as file: reader = csv.reader(file) spam_list = [row[0] for row in reader]
报错原因说明
Python默认的当前工作目录不一定是脚本所在的目录。比如你在终端的~/Documents目录下运行python ~/Projects/script.py,此时工作目录是~/Documents,而非脚本所在的~/Projects,直接用文件名查找时会在~/Documents里找,自然找不到目标文件。
内容的提问来源于stack exchange,提问作者Maciej Steckiewicz
相关产品推荐
相关产品推荐

