C++和Python检查文件是否存在

8 篇文章 1 订阅

课题中遇到采集图像的程序是C++,而后续过程用的是Python,二者之间的混合调用比较麻烦,想到一种方法,C++采集图像保存图像,python用来图像深度处理,处理完之后删除,c++这边继续保存,图片是都存在在其中起到了一个信号量的作用.因此C++和Python检查文件是否存在的程序就不可少了,过程不难,总结下方便以后使用.
首先,C++检查文件是否存在:

#include <iostream>
#include <fstream>
using namespace std;
#define FILENAME "stat.dat"
int main()
{
     fstream _file;
     _file.open(FILENAME,ios::in);
     if(!_file)
     {
         cout<<FILENAME<<"没有被创建";
      }
      else
      {
          cout<<FILENAME<<"已经存在";
      }
      return 0;
}

Python检查文件是否存在代码方法,参考了博客python中判断文件是否存在的三种方式
1. 使用os模块
os模块中的os.path.exists()方法用于检验文件是否存在

import os
# 判断文件是否存在
img_filename = os.path.join('/home/pc','color.png')
result = os.path.exists(img_filename)
>>> result
False
# 判断文件夹是否存在
result =os.path.exists('新建文件夹')
>>> result
True

2.判断文件是否可做读写操作

使用os.access()方法判断文件是否可进行读写操作。

os.access(path, mode)

path为文件路径,mode为操作模式,有这么几种:

os.F_OK: 检查文件是否存在;
os.R_OK: 检查文件是否可读;
os.W_OK: 检查文件是否可以写入;
os.X_OK: 检查文件是否可以执行
import os
if os.access("./file/path/foo.txt", os.F_OK):
    print("Given file path is exist.")
if os.access("./file/path/foo.txt", os.R_OK):
    print("File is accessible to read")
if os.access("./file/path/foo.txt", os.W_OK):
    print("File is accessible to write")
if os.access("./file/path/foo.txt", os.X_OK):
    print("File is accessible to execute")

3.使用Try语句

可以在程序中直接使用open()方法来检查文件是否存在和可读写,如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。
程序无法访问文件,可能有很多原因:

如果你open的文件不存在,将抛出一个FileNotFoundError的异常;
文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。

所以可以使用下面的代码来判断文件是否存在:

try:
    f =open('abc.txt')
    f.close()
except FileNotFoundError:
    print ("File is not found.")
except PersmissionError:
    print ("You don't have permission to access this file.")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值