如何无异常地检查文件是否存在?

2024-02-26

如何在不使用try https://docs.python.org/3.6/reference/compound_stmts.html#try陈述?


如果您检查的原因是这样您可以执行类似的操作if file_exists: open_it(),使用更安全try围绕尝试打开它。检查然后打开文件的风险是,在检查和尝试打开文件之间,文件会被删除或移动或发生其他情况。

如果您不打算立即打开文件,可以使用os.path.isfile https://docs.python.org/library/os.path.html#os.path.isfile

Return True如果路径是现有的常规文件。这遵循符号链接,因此两者islink() https://docs.python.org/library/os.path.html#os.path.islink and isfile() https://docs.python.org/library/os.path.html#os.path.isfile对于相同的路径可以是正确的。

import os.path
os.path.isfile(fname) 

如果您需要确定它是一个文件。

从 Python 3.4 开始,pathlib module https://docs.python.org/3/library/pathlib.html#pathlib.Path.is_file提供面向对象的方法(向后移植到pathlib2在 Python 2.7 中):

from pathlib import Path

my_file = Path("/path/to/file")
if my_file.is_file():
    # file exists

要检查目录,请执行以下操作:

if my_file.is_dir():
    # directory exists

检查是否有Path对象独立存在,无论是文件还是目录,使用exists():

if my_file.exists():
    # path exists

您还可以使用resolve(strict=True) in a try block:

try:
    my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
    # doesn't exist
else:
    # exists
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何无异常地检查文件是否存在? 的相关文章

  • 带有指针数组的 cython

    我在 python 中有一个 numpy ndarrays 列表 具有不同的长度 并且需要非常快速地访问 python 中的列表 我认为指针数组就可以解决问题 我试过 float type t list of arrays no of ar
  • 美丽的汤从谷歌搜索中提取href

    谷歌搜索给出了以下 HTML 的第一个结果 h3 class r a href https rads stackoverflow com amzn click com 0470284889 class l vst em Quantitati
  • 帮助需要在可选条件下编写正则表达式[关闭]

    我有一个日志文件包含如下内容 log Using data from yyyy mm dd 2011 8 3 0 files queued for scanning Warning E test H ndler pdf File not F
  • 将打开关闭的 Google Chrome 浏览器添加到 Selenium linkedin_scraper 代码中

    我正在尝试抓取一些知名人士的 LinkedIn 个人资料 该代码获取一堆 LinkedIn 个人资料 URL 然后使用Selenium and scrape linkedin收集信息并将其作为 json 文件保存到文件夹中 我遇到的问题是
  • 将 PHP 变量保存到文本文件

    我想知道如何将 PHP 变量保存到 txt 文件 然后 再次检索它们 Example 有一个输入框 提交后写的东西 输入框将被保存到文本文件中 稍后需要结果 作为变量带回 假设变量是 text I 需要将其保存到文本文件并能够将其检索回来
  • Django 如何从 ManyToManyField 序列化并列出全部

    我正在使用 Django 1 9 1 开发移动应用程序后端 我实现了关注者模型 现在我想列出用户的所有关注者 但目前我不得不这样做 我还使用 Django Rest 框架 这是我的 UserProfile 模型 class UserProf
  • Pandas Pivot_Table :非数字值的行计算百分比

    这是我在数据框 df 中的数据 Document Name Time SPS2315511 A 1 HOUR SPS2315512 B 1 2 HOUR SPS2315513 C 2 3 HOUR SPS2315514 C 1 HOUR S
  • 使用python中的mysql连接器正确从mysql数据库获取blob

    当执行以下代码时 import mysql connector connection mysql connector connect connection params here cursor connection cursor curso
  • 如何在 Python 中仅列出 zip 存档中的文件夹?

    如何仅列出 zip 存档中的文件夹 这将列出存档中的每个文件夹和文件 import zipfile file zipfile ZipFile samples sample zip r for name in file namelist pr
  • 在 Java 中打开现有文件并关闭它。

    是否可以在java中打开一个文件附加数据并关闭多次 例如 psuedocode class variable declaration FileWriter writer1 new FileWriter filename fn1 writer
  • 如何在 Python 中执行相当于预处理器指令的操作?

    有没有办法在 Python 中执行以下预处理器指令 if DEBUG lt do some code gt else lt do some other code gt endif There s debug 这是编译器预处理的特殊值 if
  • PyQt - 如何检查 QDialog 是否可见?

    我有个问题 我有这个代码 balls Ball for i in range 1 10 因此 当我说 Ball 时 这将在 QDialog 上绘制一个球 然后当这完成后 我正在移动球QDialog无限循环中 我想说类似的话while QDi
  • python中打印字符串的长度

    有没有什么方法可以找到 即使是最好的猜测 Python中字符串的 打印 长度 例如 potaa bto 是 8 个字符len但 tty 上只打印 6 个字符宽 预期用途 s potato x1b 01 32mpotato x1b 0 0mp
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • 从 csv 中读取 pandas 数据帧,以非固定标头开始

    我有许多数据文件是由我的实验室中使用的一些相当黑客的脚本生成的 该脚本非常有趣 因为它在标头之前附加的行数因文件而异 尽管它们具有相同的格式并具有相同的标头 我正在编写一个批处理来将所有这些文件处理为数据帧 如果我不知道位置 如何让 pan
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 在 Tensorflow 2.0 中的简单 LSTM 层之上添加 Attention

    我有一个由一个 LSTM 和两个 Dense 层组成的简单网络 如下所示 model tf keras Sequential model add layers LSTM 20 input shape train X shape 1 trai
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该
  • 在读/写二进制数据结构时访问位域

    我正在为二进制格式编写一个解析器 这种二进制格式涉及不同的表 这些表同样采用二进制格式 通常包含不同的字段大小 其中 50 100 个之间 大多数这些结构都有位域 并且在 C 语言中表示时看起来像这样 struct myHeader uns
  • Selenium Python 使用代理运行浏览器[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个非常简单的脚本 该脚本从 txt 文件获取代理 不需要身份验证 并用它打开浏览器 然后沿着代理列表循环此操作一定次数 我确实知道如何打开 txt 文件并使用它 我的主要问题是让代理正常工作 我见

随机推荐

  • 在画布上画线,但最后的线褪色了

    我正在尝试在黑色背景上绘制白线网格 底部的 3 条水平线似乎已经褪色 直到我重新绘制它们 我不明白为什么会发生这种情况 有没有人见过这个和 或知道我做错了什么 这是因为线条是在它们所在的所有像素上绘制的 在画布上定位是浮动的 当你想在画布上
  • 为什么将 pickle 文件加载到内存中会占用更多空间?

    我有一个文件夹包含 7603 个文件pickle dump 平均文件大小为6 5MB 因此文件占用的总磁盘空间约为48GB 每个文件都是通过 pickle 一个列表对象获得的 该列表的结构为 A 50 A str int 92 floats
  • 如何将 erb 转换为 html?

    想象一下我在轨道上 template这是一个实例ActionTemplate View 问题是 我该如何转换 template谁的 template source是 to hello from erb 谢谢 尝试这个 ERB new tem
  • 与“this”没有类型/差异的显式自引用

    我了解用途显式键入的自引用 http www scala lang org node 124 trait T self T2 gt 在身体里 self是一个别名this但有更精确的类型T with T2 现在 我在代码中看到了这一点 tra
  • AWS RDS SQL Server 无法删除数据库

    我尝试通过导出数据层应用程序迁移 SQL Server 数据库 bacpac文件 从 Amazon RDS 实例到其他实例 但导入失败 所以现在我想删除数据库 它是空的 当我尝试 DROP DATABASE mydatabase 我收到错误
  • 捕获 java.lang.OutOfMemoryError?

    文档 http java sun com javase 6 docs api java lang Error html for java lang Error says Error 是 Throwable 的子类 表示合理的应用程序不应尝试
  • SQL 比较和空值的问题

    我有一个更新查询 当一个表中的值与另一表中的字段不匹配时 该查询会更新一个表中的字段 UPDATE table1 SET a field1 b field3 FROM table1 a table2 b WHERE a field2 b f
  • 开发环境与测试和生产环境不同?

    如果开发人员想要实现sql2008开发环境 但我们仍然被迫使用sql2000测试和sql2000生产环境 你会怎么说 在开发服务器上使用sql2008会有什么问题吗 当然 您需要知道哪些功能您无法使用 因此将工作从 sql2008 服务器迁
  • 扑。在非常大的 ListView 上设置 ListView 初始位置

    我想创建一个几乎无限的元素列表 但我想将列表的初始位置设置为某个特定元素 像这样的图片 其中索引 0 是初始位置 并且该列表可能会也可能不会在两个方向上延伸很长 我可以创建我的元素 例如 Widget build tile int i re
  • 文本装饰:无不适用于 ul

    我看到了很多与这个主题相关的问题 但没有一个回答我的问题 我正在为一个网站制作一个侧边栏 我试图在与侧边栏宽度相同的框中创建链接 只有一点填充 也许是10 15px 并且每个链接之间有一点点空间 也许 3 像素 但我似乎无法得到 text
  • 如何更改gridview所选项目的背景颜色?

    如何在 Asp net Web 应用程序中更改 gridview 所选项目的背景颜色 您可以在 GridView 标记下的 aspx 页面中执行此操作
  • React-router URL 在刷新或手动写入时不起作用

    我正在使用 React router 当我单击链接按钮时它工作正常 但是当我刷新网页时它不会加载我想要的内容 例如 我在localhost joblist一切都很好 因为我按链接到达这里 但if我刷新我得到的网页 Cannot GET jo
  • Node.js - 启动进程(firebase 模拟器)并读取其输出

    我想在 Jest 测试之前启动 firebase 模拟器 执行此操作 但以编程方式执行 E my projct gt firebase emulators start only firestore i emulators Starting
  • 字符串中的动态 t-sql 引号

    我在存储过程中有以下内容 DECLARE new column name varchar 9 DECLARE table name varchar 16 DECLARE SQLString nvarchar 2000 SET new col
  • 如何使用 Play 2.0 定义标签?

    关于 Play 2 0 模板引擎的文档并不多 如何使用 Scala 模板创建标签 play 2 0 中的模板引擎直接来自 play 1 0 scala 模块 如果您仍然想知道像 Scala 这样的函数式语言能带来什么好处 那么这肯定是它的亮
  • Ruby 正则表达式:即使没有 m 修饰符,^ 也匹配行首?

    红宝石 1 8 7 我使用带有 的正则表达式来匹配字符串开头的模式 问题是 如果在开始处找到该模式any line在字符串中它仍然匹配 如果我使用 m 修饰符 这是我期望的行为 但我没有 irb irb main 001 0 gt str
  • 多个按顺序的 HTTP POST

    我有一个正在开发的应用程序 我需要按顺序执行 3 个 HTTP POST 实现这一点的最佳方法是什么 我是不是该 使每个 HTTP Post 都有自己的异步类 并以菊花链方式连接异步类 即从第一个异步的 onPostExecute 调用第二
  • 空指针测试性能

    C 中测试引用类型变量是否为空指针的性能如何 like if x null 与测试小于零的整数甚至布尔值是否为假相比 是否还有其他关于此类的问题空指针测试 例如是产生的垃圾 我对游戏的每一帧进行了数百次这样的测试 我想知道这些测试是否会导致
  • 如何在没有 $this 的情况下处理类变量?

    我正在制作一个带有 OOP 概念的 WordPress 插件 但我面临一些有线问题 首先我有一个main plugin php文件 我有这样的课程 include once plugin dir path FILE something ph
  • 如何无异常地检查文件是否存在?

    如何在不使用try https docs python org 3 6 reference compound stmts html try陈述 如果您检查的原因是这样您可以执行类似的操作if file exists open it 使用更安