微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使我正在*制作*一个文件,我也会收到“FileNotFoundError”

如何解决即使我正在*制作*一个文件,我也会收到“FileNotFoundError”

我正在尝试创建一个包含文件的目录

# lines 1-5
import logging,os

unix_doc_loc = '~\\byeStore'
win32_doc_loc = 'C:\\byeStore'

[...]
# line 108
class Store():
[...]
# lines 132-148
    def CacheCatalogue():
        import sys,os,time,platform,json
        byelogs.debug('sys,os and time were imported')
        # catalogue = Store.GetCatalogue() # commented out as this isn't functional yet
        catalogue = '{"lastUpdated": 1}'
        catalogue = json.loads(catalogue)
        byelogs.info('Catalogue recieved.')
        byelogs.debug(catalogue)
        if sys.platform == 'win32':
            byelogs.info('Detected Windows ({}). Using "C:\\byeStore\\"...'.format(sys.platform)) # line 142 - the troublesome line
            catcache = open('C:\\byeStore\\catalogue-cache.json','wt')
            byelogs.debug('Opened catcache')
        if catalogue['lastUpdated'] >= catcache['lastUpdated']:
            byelogs.info('Catalouge in cache is old. Updating...')
            catcache.write(catalogue)
            byelogs.info('Updated.')
            

这是我的终端输出

Z:\ByeStore\ByeStoreLibs>featuretest.py
Traceback (most recent call last):
  File "Z:\ByeStore\ByeStoreLibs\featuretest.py",line 5,in <module>
    byestore.Store.CacheCatalogue()
  File "Z:\ByeStore\ByeStoreLibs\src\byestore\__init__.py",line 142,in CacheCatalogue
    catcache = open('C:\\byeStore\\catalogue-cache.json','wt')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\byeStore\\catalogue-cache.json'

Z:\ByeStore\ByeStoreLibs>

我记得 'wt' makes 文件中的 open(file,'wt') 部分。我什至尝试使用 "x",但这也不起作用。我只是不能出于某种原因制作文件

我的文件on GitHub,if you want the full source

解决方法

from pathlib import Path

d = "C:\\byeStore\\"
Path(d).mkdir(parents=True,exist_ok=True)
open(d + "catalogue-cache.json",'w+')

这里有几件事:

  1. 首先创建目录。
  2. 'w' 用于创建不存在的文件,而不是 't'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。