Python检查文件或目录是否存在
在本教程中,我们将学习如何使用Python检查文件(或目录)是否存在。为了检查这一点,我们使用python的内置函数,可以使用4种方法来验证文件或目录的存在,如下所示:
os.path.exists()
os.path.isfile()
os.path.isdir()
pathlibPath.exists()
os.path.exists()
使用path.exists()方法,可以快速检查文件或目录是否存在,
步骤1)在运行代码之前,导入os.path模块:
import os.path
from os import path
步骤2)使用path.exists()检查文件是否存在。
path.exists("guru99.txt")
步骤3)以下是完整代码
import os.path
from os import path
def main():
print ("File exists:"+str(path.exists('guru99.txt')))
print ("File exists:" + str(path.exists('career.guru99.txt')))
print ("directory exists:" + str(path.exists('myDirectory')))
if __name__== "__main__":
main()
输出:
File exists: True
File exists: False
directory exists: Falseos.path.isfile()
我们可以使用isfile()方法来检查给定的输入是文件还是目录,代码如下:
import os.path
from os import path
def main():
print ("Is it File?" + str(path.isfile('guru99.txt')))
print ("Is it File?" + str(path.isfile('myDirectory')))
if __name__== "__main__":
main()
输出:
Is it File? True
Is it File? Falseos.path.isdir()
如果要确认给定路径指向目录,可以使用os.path.dir()函数,代码如下:
import os.path
from os import path
def main():
print ("Is it Directory?" + str(path.isdir('guru99.txt')))
print ("Is it Directory?" + str(path.isdir('myDirectory')))
if __name__== "__main__":
main()
输出:
Is it Directory? False
Is it Directory? True适用于Python 3.4的pathlibPath.exists()
Python 3.4及更高版本具有pathlib模块,用于处理文件系统路径。它使用面向对象的方法来检查文件是否存在,代码如下:
import pathlib
file = pathlib.Path("guru99.txt")
if file.exists ():
print ("File exist")
else:
print ("File not exist")
输出:
File exist
以下是完整的代码:
import os
from os import path
def main():
print(os.name)
print("Item exists:" + str(path.exists("guru99.txt")))
print("Item is a file: " + str(path.isfile("guru99.txt")))
print("Item is a directory: " + str(path.isdir("guru99.txt")))
if __name__ == "__main__":
main()
输出:
Item exists: True
Item is a file: True
Item is a directory: False
总结如下:
os.path.exists()–如果路径或目录存在,则返回True。
os.path.isfile()–如果路径为File,则返回True。
os.path.isdir()-如果路径是Directory,则返回True。
pathlib.Path.exists()-如果路径或目录存在,则返回True。(要求在Python 3.4及更高版本中应用)
希望这篇文章对你们有用,
欢迎在下方讨论留言,
谢谢关注.
领取专属 10元无门槛券
私享最新 技术干货