You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中文件实际存在却提示File not found的问题求助

解决numpy.loadtxt报OSError文件找不到的问题

我太懂这种明明VSCode能直接点开文件路径、打印出来的路径也看着没问题,但Python就是报错找不到文件的憋屈感了。结合你的情况,给你几个实用的排查和解决方向:

  • 确认Python的当前工作目录
    有时候VSCode的工作区目录和Python实际运行时的工作目录并不是同一个。你可以在代码开头加上这两行,看看Python当前在哪个目录下找文件:

    import os
    print("Python当前工作目录:", os.getcwd())
    

    如果输出的目录和你的BASE_FOLDER不一致,那Python会在自身当前工作目录下寻找DATA.txt,自然找不到目标文件。这时候你可以用os.chdir(BASE_FOLDER)切换到目标目录后,再执行加载操作。

  • 改用更可靠的路径拼接方式
    直接用字符串加号拼接路径很容易因为分隔符、多空格之类的小细节出问题,推荐用Python内置的路径处理工具:
    👉 用os.path.join(兼容所有Python版本):

    import numpy as np
    import os
    BASE_FOLDER = 'C:\\path\\'
    BASE_NAME = 'DATA.txt'
    fname = os.path.join(BASE_FOLDER, BASE_NAME)
    data = np.loadtxt(fname)
    

    👉 用更现代的pathlib(Python 3.4及以上版本推荐):

    import numpy as np
    from pathlib import Path
    BASE_FOLDER = Path('C:\\path\\')
    BASE_NAME = 'DATA.txt'
    fname = BASE_FOLDER / BASE_NAME
    data = np.loadtxt(fname)
    

    这两种方式都会自动处理不同操作系统的路径分隔符,彻底避免手动拼接的潜在错误。

  • 检查文件的真实名称
    Windows默认会隐藏已知文件的扩展名,有时候你看到的DATA.txt实际可能是DATA.txt.txt(比如保存文件时不小心重复添加了扩展名)。你可以打开文件资源管理器,开启「显示文件扩展名」选项,确认文件的真实名称和代码里的BASE_NAME完全一致。另外也要留意文件名的大小写,虽然Windows系统不区分,但少数情况下Python会因为大小写不匹配触发找不到文件的错误。

  • 排查目录权限问题
    如果你的文件放在系统受保护的目录(比如C:\Program Files),Python可能没有读取该目录文件的权限。这种情况下,你可以右键VSCode图标,选择「以管理员身份运行」,再重新执行代码试试。

内容的提问来源于stack exchange,提问作者Enzo

火山引擎 最新活动