python判断txt是否为空,并跳过空文件

问题:对批量txt文件做一些读写操作,一遇到为空的文件使得程序报错并终止,怎么判断一个txt文件内容是否为空,为空的话怎么跳过这些文件以继续下面的操作,并将为空的txt文件夹名称打印输出呢?
解决思路:
1、os.path.getsize() 返回文件的字节数,如果为 0,则代表空。
2、continue继续下面的操作

代码展示:`

import os
for filename_1 in os.listdir(r"G:/Deep_Code/yolov4-pytorch-master/map_out/detection-results/"): 
     print(filename_1)
     #for txt_name in filename_1.readlines():
     #txt_name  = txt_name.strip('\n')
     #print(txt_name)
     filename_1 = filename_1.strip('/n')
     #遍历detection-results里txt的路径
     detection_results_txt_path  = os.path.join('G:/Deep_Code/yolov4-pytorch-master/map_out/detection-results/', filename_1)
     #打开txt
     with open (detection_results_txt_path) as txt_1:
         #遍历txt的每一行
         #新建一个列表,将每个目标的像素面积放入到该列表当中
         if not os.path.getsize(detection_results_txt_path):
             print(filename_1, " is empty!")
             continue

增加判断的内容代码为:

if not os.path.getsize(detection_results_txt_path):
             print(filename_1, " is empty!")
             continue

之后程序成功执行完毕。

拓展:
1、将判断为空的文件夹删除,并继续

import os
 
for filename_1 in os.listdir(r"G:/Deep_Code/yolov4-pytorch-master/map_out/detection-results/"): 
     print(filename_1)
     #for txt_name in filename_1.readlines():
     #txt_name  = txt_name.strip('\n')
     #print(txt_name)
     filename_1 = filename_1.strip('/n')
     #遍历detection-results里txt的路径
     detection_results_txt_path  = os.path.join('G:/Deep_Code/yolov4-pytorch-master/map_out/detection-results/', filename_1)
     #打开txt
     with open (detection_results_txt_path) as txt_1:
         #遍历txt的每一行
         #新建一个列表,将每个目标的像素面积放入到该列表当中
         if not os.path.getsize(detection_results_txt_path):
             print(filename_1, " is empty!")
             os.remove(filename_1)
             continue

2、判断文件是否存在
os.path.exists() 方法用于检验文件 / 文件夹是否存在。

import os
path = "/home/wzh/predict_dir"
file = "/home/wzh/predict_file"
 
if not os.path.exists(path):
    os.path.makedirs(path)
 
if not os.path.exists(file):
    pass

3、先判断文件是否存在,如果存在则判断是否为空:

# 文件是否存在,以及是否为空
file = "/home/wzh/predict_file.txt"
if os.path.exists(file):
    print(file, " is exists!")
    sz = os.path.getsize(file)
    if not sz:
        print(file, " is empty!")
    else:
        print(file, " is not empty, size is ", sz)
else:
    print(file, " is not exists!")

参考博客链接:https://blog.csdn.net/sinat_26811377/article/details/107368659

你可能感兴趣的:(Tips,python)