【Python】已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘D:\1. PDF’

文章目录

    • 一、分析问题背景
    • 二、可能出错的原因
    • 三、错误代码示例
    • 四、正确代码示例
    • 五、注意事项

在这里插入图片描述
已解决:FileNotFoundError: [Errno 2] No such file or directory: ‘D:\1. PDF’

一、分析问题背景

在Python编程中,当你尝试打开一个不存在的文件时,会触发FileNotFoundError。这个问题通常发生在文件路径错误、文件确实不存在于指定位置,或者文件名/扩展名输入错误等情况下。在本例中,错误消息[Errno 2] No such file or directory: ‘D:\1. PDF’ 指出程序试图访问位于D:\路径下的名为1. PDF的文件,但未能找到。

二、可能出错的原因

  1. 文件路径错误:可能输入的路径不正确,或者路径中的文件夹名称有误。
  2. 文件不存在:指定路径下确实没有该文件,或者文件已被移动、删除。
  3. 文件名或扩展名错误:在文件名或扩展名中可能存在不必要的空格或其他不可见字符,或者大小写不匹配(尤其是在区分大小写的文件系统中)。
  4. 权限问题:程序可能没有足够的权限去访问指定的文件或目录。

三、错误代码示例

下面是一个可能导致FileNotFoundError的Python代码示例:

with open('D:\\1. PDF', 'r') as file:  
    content = file.read()  
    print(content)

在上述代码中,如果D:\1. PDF文件不存在,则会触发FileNotFoundError。此外,注意在文件扩展名PDF前的点(.)后有一个空格,这很可能是导致文件无法找到的原因。

四、正确代码示例

为了解决这个问题,你需要确保文件路径和名称完全正确,并且文件确实存在于该路径下。以下是修正后的代码示例:

# 确保文件路径和文件名正确,没有多余的空格,并且文件确实存在  
file_path = 'D:\\1.PDF'  # 修正了文件扩展名前的空格,并确保大小写正确  
  
try:  
    with open(file_path, 'rb') as file:  # 使用'rb'模式读取二进制文件,如PDF  
        content = file.read()  
        # 处理content,例如保存到变量或进行其他操作  
        print("文件内容已读取。")  
except FileNotFoundError:  
    print(f"无法找到文件: {file_path}")

在这个修正后的代码中,我移除了文件名中不必要的空格,并使用了try-except块来优雅地处理FileNotFoundError。此外,由于PDF是二进制文件,因此使用’rb’模式来打开它。

五、注意事项

  1. 仔细检查文件路径和文件名:确保没有多余的空格、拼写错误或大小写问题。
  2. 使用try-except处理异常:这可以帮助你更优雅地处理错误,并提供更好的用户体验。
  3. 注意文件类型:根据你要读取或写入的文件类型(如文本、二进制等),选择合适的文件打开模式。
  4. 权限检查:确保你的程序有足够的权限去读取或写入指定的文件或目录。

通过遵循上述指南和最佳实践,你可以减少遇到FileNotFoundError的风险,并更有效地处理文件和目录操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/785266.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第15天|应用实践之ShuffleNet图像分类

基本介绍 今天的应用实践的领域是计算机视觉领域,更确切的说是图像分类任务,不过,与昨日不同的是,今天所使用的模型是ShuffleNet模型。ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一…

26.6 Django模型层

1. 模型层 1.1 模型层的作用 模型层(Model Layer)是MVC或MTV架构中的一个核心组成部分, 它主要负责定义和管理应用程序中的数据结构及其行为. 具体职责包括: * 1. 封装数据: 模型层封装了应用程序所需的所有数据, 这些数据以结构化的形式存在, 如数据库表, 对象等. * 2. 数据…

LabVIEW电滞回线测试系统

铁电材料的性能评估依赖于电滞回线的测量,这直接关系到材料的应用效果和寿命。传统的电滞回线测量方法操作复杂且设备成本高。开发了一种基于LabVIEW的电滞回线测试系统,解决传统方法的不足,降低成本,提高操作便捷性和数据分析的自…

王老师 linux c++ 通信架构 笔记(二)配置服务器为固定的 ip 地址、远程登录、安装 gcc g++ 与虚拟机文件夹共享

(7)本条目开始配置 linux 的固定 ip 地址,以作为服务器使用: 首先解释 linux 的网口编号: linux 命令 cd : change directory 改变目录。 ls : list 列出某目录下的文件 根目录文件名 / etc &a…

Java创建多线程的几种方式详解

进程与线程 简单介绍下基础概念 进程:在内存中执行的应用程序 线程:进程中最小的执行单元,作用是负责当前进程中程序的运行。一个进程中至少有一个线程,一个进程还可以有多个线程,这样的应用程序就称之为多线程程序 …

【详细教程】PowerDesigner导出表结构word文档

📖【详细教程】PowerDesigner导出表结构word文档 ✅第一步:新建报告✅第二步:配置导出的参数✅第三步:导出 ✅第一步:新建报告 ✅第二步:配置导出的参数 如果你只需要导出纯粹的表结构,那么下面…

音频demo:使用opencore-amr将PCM数据与AMR-NB数据进行相互编解码

1、README a. 编译 编译demo 由于提供的.a静态库是在x86_64的机器上编译的,所以仅支持该架构的主机上编译运行。 $ make编译opencore-amr 如果想要在其他架构的CPU上编译运行,可以使用以下命令(脚本)编译opencore-amr[下载地…

Html5前端基本知识整理与回顾上篇

今天我们结合之前上传的知识资源来回顾学习的Html5前端知识,与大家共勉,一起学习。 目录 介绍 了解 注释 标签结构 排版标签 标题标签 ​编辑 段落标签 ​编辑 换⾏标签 ​编辑 ⽔平分割线 ⽂本格式化标签 媒体标签 绝对路径 相对路径 …

【Python】不小心卸载pip后(手动安装pip的两种方式)

文章目录 方法一:使用get-pip.py脚本方法二:使用easy_install注意事项 不小心卸载pip后:手动安装pip的两种方式 在使用Python进行开发时,pip作为Python的包管理工具,是我们安装和管理Python库的重要工具。然而&#x…

接口调用的三种方式

例子: curl --location http://110.0.0.1:1024 \ --header Content-Type: application/json \ --data {"task_id": 1 }方式一:postman可视化图形调用 方式二:Vscode中powershell发送请求 #powershell (psh) Invoke-WebRequest -U…

用R在地图上绘制网络图的三种方法

地理网络图与传统的网络图不同,当引用地理位置进行节点网络可视化时,需要将这些节点放置在地图上,然后绘制他们之间的连结。Markus konrad的帖子(https://datascience.blog.wzb.eu/2018/05/31/three-ways-of-visualizing-a-graph-on-a-map/)&…

Linux系统编程——线程控制

目录 一,关于线程控制 二,线程创建 2.1 pthread_create函数 2.2 ps命令查看线程信息 三,线程等待 3.1 pthread_join函数 3.2 创建多个线程 3.3 pthread_join第二个参数 四,线程终止 4.1 关于线程终止 4.2 pthread_exit…

LeetCode 算法:腐烂的橘子 c++

原题链接🔗:腐烂的橘子 难度:中等⭐️⭐️ 题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟&#…

Java版Flink使用指南——定制RabbitMQ数据源的序列化器

大纲 新建工程新增依赖数据对象序列化器接入数据源 测试修改Slot个数打包、提交、运行 工程代码 在《Java版Flink使用指南——从RabbitMQ中队列中接入消息流》一文中,我们从RabbitMQ队列中读取了字符串型数据。如果我们希望读取的数据被自动化转换为一个对象&#x…

JAVA案例ATM系统

一案例要求: 首先完成ATM的用户登录和用户开户两个大功能,用户开户有账户名,性别,账户密码,确认密码,每次取现额度,并且随机生成一个7位数的账号,用户登录功能有查询,存…

k8s 部署 metribeat 实现 kibana 可视化 es 多集群监控指标

文章目录 [toc]环境介绍老(来)板(把)真(展)帅(示)helm 包准备配置监控集群获取集群 uuid生成 api_key配置 values.yaml 配置 es 集群获取集群 uuid 和 api_key配置 values.yaml 查看监控 缺少角色的报错 开始之前,需要准备好以下场景 一套 k8s 环境 k8s 内有两套不同…

Aqara 发布多款智能照明新品,引领空间智能新时代

7月8日,全球 IoT 独角兽品牌 Aqara 以“光,重塑空间想象”为主题,举办了线上智能照明新品沟通会。 会上,Aqara 正式发布一系列引领行业的智能照明新品,包括银河系列轨道灯 V1 以及繁星系列妙控旋钮 V1 等,…

Hospital Management System v4.0 SQL 注入漏洞(CVE-2022-24263)

前言 CVE-2022-24263 是一个影响 Hospital Management System (HMS) v4.0 的 SQL 注入漏洞。这个漏洞允许攻击者通过注入恶意 SQL 代码来获取数据库的敏感信息,甚至可能控制整个数据库。以下是对这个漏洞的详细介绍: 漏洞描述 在 Hospital Management…

使用Keil 点亮LED灯 F103ZET6

1.新建项目 不截图了 2.startup_stm32f10x_hd.s Keil\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\Source\ARM 搜索startup_stm32f10x_hd.s 复制到项目路径,双击Source Group 1 3.项目文件夹新建stm32f10x.h, 新建文件main.c #include "stm32f10x…