文件存在,但打开说没有

时间:2017-12-20 05:24:19

标签: python python-3.x

dir_path = os.path.dirname(os.path.realpath(__file__))
from os.path import isfile, join
onlyfiles = [f for f in listdir(dir_path) if isfile(join(dir_path, f))]

print(onlyfiles);

with open("config.json", 'r') as jsondata:
    config = json.loads(jsondata.read())

尽管在

期间列出了文件,但以某种方式运行此代码会触发不存在的错误
print(onlyfiles);

以下是控制台的完整输出日志。

Traceback (most recent call last):
['builder.py', 'builder.spec', 'builderloader2.rb', 'config.json', 
'Run.bat', 'Run.bat.lnk', 'test.json']

  File "C:/Users/cody.jones/Desktop/Builder Generator Release/builder.py", 
line 26, in <module>
    with open("config.json", 'r') as jsondata:

FileNotFoundError: [Errno 2] No such file or directory: 'config.json'

Process finished with exit code 1

2 个答案:

答案 0 :(得分:1)

提供open()的完整路径而不仅仅是文件名,因为默认情况下它会在同一目录中查找文件

尝试:

open(r"C:/Users/cody.jones/Desktop/Builder Generator Release/config.json", "r")

答案 1 :(得分:-1)

该脚本将在当前工作目录中查找config.json - 这可能与脚本所在的文件夹不同。

更新您的公开通话,以包含您已生成的路径。

with open(os.path.join(dir_path, "config.json"), 'r')) as jsondata:

通过这种方式(而不仅仅包括绝对路径),只要您将脚本和配置保持在一起,只要将脚本移动到其他目录或计算机,此脚本仍然可以正常工作。