gpt4 book ai didi

python - Python 中文件夹何时为空时通知?

转载 作者:行者123 更新时间:2023-12-01 09:11:55 27 4
gpt4 key购买 nike

我正在路径中搜索文件,但某些子文件夹为空。因此应该使用异常(exception)。

如果遇到空文件夹,则会发生此错误。

FionaValueError: No dataset found at path '/Users\user\Desktop\testn\43003\CBOUND' using drivers: *

所以我对这个错误做了异常(exception)处理:

folder = Path(r"C:\Users\user\Desktop\testn")
shapefiles =glob('/*/*/Desktop/testn/*/*')
#shapefiles =glob('/*/*/Desktop/testm/*/*,recursive = True')

shapefiles
try:
gdf = pandas.concat([
geopandas.read_file(shp)
for shp in shapefiles
],sort=True).pipe(geopandas.GeoDataFrame)
gdf.to_file(folder / 'compiled.shp')
except FionaValueError as ex:
if shp==[]: #if subfolder is empty print name of folder and subfolder is empty
print(shp + 'is empty')

并给出

NameError: name 'FionaValueError' is not defined

所以我需要的是:

1.打印空文件夹及子文件夹的名称

2.修复异常中无法识别的错误。

最佳答案

您应该导入此错误 - 另请参阅 docs :

from fiona.errors import FionaValueError

要检查文件夹是否为空,您可以使用以下模式:

if not os.listdir(path):
print(f'{path} is empty')

要打印实际的空路径,您可以将列表理解重写为标准循环:

from fiona.errors import FionaValueError
import os
import glob
import geopandas as gpd
import pandas as pd
import path

folder = path.Path(r"C:\Users\user\Desktop\testn")
shapefiles = []
for shpfile in glob.iglob('/*/*/Desktop/testn/*/*'):
try:
shapefiles.append(geopandas.read_file(shpfile))
except FionaValueError as ex:
if not os.listdir(shpfile):
print(f'{shpfile} is empty')

gdf = pd.concat(shapefiles, sort=True).pipe(gpd.GeoDataFrame)
gdf.to_file(folder / 'compiled.shp')

关于python - Python 中文件夹何时为空时通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51589782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com