热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查Python中是否存在文件

Anabilitytocheckifthefileexistsornot,isverycrucialinanyapplication.Often,theapplicationspe

An ability to check if the file exists or not, is very crucial in any application. Often, the applications perform verifications like,

在任何应用程序中,检查文件是否存在的能力至关重要。 通常,应用程序会执行验证,例如,

  • Check if the file exists before appending/writing to it.

    在追加/写入文件之前检查文件是否存在。

  • Check if the file exists before reading it.

    在读取文件之前,请检查文件是否存在。

The python programming language provides multiple methods to check if the file exists or not. The module which provides the functions as ‘os' , so it is important to import os, while there is a verification on file's existence.

python编程语言提供了多种方法来检查文件是否存在 。 提供功能为'os'的模块,因此在验证文件是否存在的同时导入os非常重要。

os.path.exists() (os.path.exists())

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> from os import path
>>> print(path.exists('test.txt'))
True
>>> print(path.exists('test1.txt'))
False
>>>

os.path.isfile() (os.path.isfile())

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.path.isfile('test.txt'))
True
>>> print(os.path.isfile('test1.txt'))
False

The functions, demonstrated above are also available in a lower version of python (<3). However, python version 3.4 provides a function pathlibPath.exists() which is imported from pathlib module for handling the file system path. It uses an object-oriented approach to verify if the file exists or not.

上面演示的功能在较低版本的python(<3)中也可用。 但是&#xff0c;python 3.4提供了一个函数pathlibPath.exists() &#xff0c;该函数是从pathlib模块导入的&#xff0c;用于处理文件系统路径。 它使用一种面向对象的方法来验证文件是否存在。

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pathlib
>>> test_file &#61; &#39;test.txt&#39;
#create a file object
>>> file &#61; pathlib.Path(test_file)
>>> if file.exists():
... print("file {} exists".format(test_file))
... else:
... print("file {} does not exists".format(test_file))
...
file test.txt exists

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pathlib
>>> test_file &#61; &#39;test1.txt&#39;
>>> file &#61; pathlib.Path(test_file)
>>> if file.exists():
... print("file {} exists".format(test_file))
... else:
... print("file {} does not exists".format(test_file))
...
file test1.txt does not exists
>>>

简而言之 (In a nutshell)

  • Use path.exists to verify if the given file exists.

    使用path.exists验证给定文件是否存在。

  • Use path.isfile to check whether a path is file.

    使用path.isfile来检查路径是否为文件。

  • The version Python 3.4 and above provides a pathlib Module to verify the existence of file.

    Python 3.4及更高版本提供了一个pathlib模块来验证文件是否存在。

Along with the above-mentioned methods, there is another straight forward pythonic way for checking the existence of the file. Use the open() method to open the file.

除了上述方法外&#xff0c;还有另一种简单的Python方式可以检查文件的存在。 使用open()方法打开文件。

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> try:
... open(&#39;text.txt&#39;)
... except:
... print("file does not exists")
...
file does not exists

-bash-4.2$ ls
python_samples test.txt
-bash-4.2$ python3
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> file_name &#61; &#39;test.txt&#39;
>>> try:
... with open(file_name) as f:
... print("{} exists".format(file_name))
... except:
... print("{} does not exists".format(file_name))
...
test.txt exists
>>>

Usage of with in above example, ensures the file is closed after the file operation.

在上面的示例中使用with可以确保在文件操作后关闭文件。

翻译自: https://www.includehelp.com/python/check-if-a-file-exists.aspx



推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
author-avatar
下页楠哥_768
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有