首页 > 其他分享 >使用zipFile读取文件时遇到的问题及解决(KeyError: "There is no item named 'xxx' in the archive")

使用zipFile读取文件时遇到的问题及解决(KeyError: "There is no item named 'xxx' in the archive")

时间:2024-01-16 20:15:07浏览次数:19  
标签:named xxx CDR read There decode str download Path

问题描述

在Windows上跑一段代码时,遇到如下问题:

KeyError: "There is no item named 'CDR_Data\\\\CDR.Corpus.v010516\\\\CDR_DevelopmentSet.PubTator.txt' in the archive"

原因分析

这是一段Python代码,代码中使用到了zipfile库,它首先创建了一个ZipFile对象,然后在调用read()函数时弹出了错误。

相关语句如下:

def download_zip(url: str) -> ZipFile:
    r = requests.get(url)
    z = ZipFile(io.BytesIO(r.content))
    return z
def _download_corpus() -> Tuple[str, str, str]:
    z = util.download_zip(CDR_URL)
    
    train = z.read(str(Path(PARENT_DIR) / TRAIN_FILENAME)).decode()
    valid = z.read(str(Path(PARENT_DIR) / VALID_FILENAME)).decode()
    test = z.read(str(Path(PARENT_DIR) / TEST_FILENAME)).decode()

    return train, valid, test

上述代码中,文件路径是通过Path()函数进行拼接,所生成的路径是由“\”分隔的,比如:

CDR_Data\CDR.Corpus.v010516\CDR_TrainingSet.PubTator.txt

可能是由于在不同平台上的编码格式有差异导致这在Windows上识别出错。

解决方法

 弃用原有的路径拼接函数Path(),路径直接改成‘/’拼接,比如:

def _download_corpus() -> Tuple[str, str, str]:
    z = util.download_zip(CDR_URL)
    
    train = z.read('CDR_Data/CDR.Corpus.v010516/CDR_TrainingSet.PubTator.txt').decode()
    valid = z.read('CDR_Data/CDR.Corpus.v010516/CDR_DevelopmentSet.PubTator.txt').decode()
    test = z.read('CDR_Data/CDR.Corpus.v010516/CDR_TestSet.PubTator.txt').decode()

    return train, valid, test

 

标签:named,xxx,CDR,read,There,decode,str,download,Path
From: https://www.cnblogs.com/engpj/p/17968409

相关文章

  • CentOS7 报错 ”Repository base is listed more than once in the configuration...
    CentOS7在使用yum时出现以下错误:RepositorybaseislistedmorethanonceintheconfigurationRepositoryupdatesislistedmorethanonceintheconfigurationRepositoryextrasislistedmorethanonceintheconfigurationRepositorycentosplusislistedmore......
  • Import yaml ModuleNotFoundError No module named 'yaml
    ImportyamlModuleNotFoundError:Nomodulenamed'yaml'Python错误信息:ModuleNotFoundError异常,具体错误是找不到名为yaml的模块。这意味着在执行导入语句importyaml时,Python解释器没有在你的环境里找到这个模块。yaml是一个用于处理YAML数据格式的库,如果你在代码中需要解......
  • 安装torch2trt中遇到的报错:ModuleNotFoundError: No module named 'torch2trt.flatten
    这一个报错折腾了一整天,在这里记录一下方便他人可以快速解决问题:首先说明一下本人的版本情况:Linux系统CUDA:11.8Python:3.8torch:2.0.0torchvision:0.15.0代码中报错的位置是:fromtorch2trtimporttorch2trt报错的原因是:ModuleNotFoundError:Nomodulenamed'torch2trt......
  • No module named 'tensorflow.contrib'
    Nomodulenamed'tensorflow.contrib'当你在使用TensorFlow时,有时候会遇到Nomodulenamed'tensorflow.contrib'的错误。本文将帮助你理解这个错误的原因,并提供解决办法。问题描述当你在运行使用TensorFlow的代码时,可能会遇到类似以下错误的信息:plaintextCopycodeModuleNotFoun......
  • Dithered golden interleaver 黄金分割伪随机交织器 代码备份
    目录公式来源DitheredgoldeninterleaverTheMatrix-DitheredGoldenInterleavingAlgorithm有错误欢迎指正公式来源DesignofaModifiedInterleavingAlgorithmBasedonGoldenSectionTheoryEnhancingthePerformanceofTurboCodesDitheredgoldeninterleaver(*......
  • Python中出现"No module named 'requests'"的图文解决办法
    第一步找到pycharm中的虚拟环境的位置第二步打开虚拟环境位置的文件夹 找到Scripts的这个文件夹然后复制该文件夹的地址第三步打开“运行”(可以用快捷键WIN+R键打开)然后输入cmd第四步切换目录到虚拟环境的盘符输入“D:”(我的虚拟环境在D盘所以切换到D盘)第五......
  • 1. 将 XXX 注册成 Windows 服务运行 -- 以Nacos为例
    众所周知,在Windows环境下想要启动nacos需要运行bin目录下的startup.cmd。这样的启动方式需要保证cmd窗口一直开着,只要把这个窗口关掉,nacos服务就停了。所以为了避免人为的误关窗口,把nacos注册成一个winserver就是一个好的选择。这样不仅可以保证nacos一直在后台运......
  • nginx将xxx.com重定向到www.xxx.com配置
    有时候,我们网站,需要将顶级域名xxx.com统一跳转到二级域名www.xxx.com下。这时候,我们可以通过修改nginx配置达到我们的目的。参考配置#以下属性中,以ssl开头的属性表示与证书配置有关。server{listen443ssl;#配置HTTPS的默认访问端口为443。#如果未在此处配置HTTP......
  • 未将服务器‘XXX’ 配置为用于 RPC
    关于PRC和PRCout的问题:执行下面两行代码即可:execsp_serveroption@server='TB_DATA',@optname='rpc',@optvalue='TRUE'execsp_serveroption@server='TB_DATA',@optname='rpcout',@optvalue='TRUE'只因你没......
  • xxx
    1. loading="lazy"浏览器图片属性,用于延迟请求加载资源,在图片位置未至用户视窗范围或屏幕位置时不予请求加载资源,直至其附近位置方可请求加载<imgsrc="deathghost.jpg"loading="lazy"alt="新码笔记"/>属性loading可选值:lazy懒加载,即:延迟获取资源eager立即加载,即:默认......