txt文件不包含结果?

时间:2018-07-31 11:49:21

标签: python try-catch

这是一个典型的异常过程,但以后不会将其写入文件中。怎么了?

摘要: with语句用于写入不存在的文件。在这种情况下,它们不会被写入txt文件。可能的解决方案是仅更改书写过程的发生方式。

AST = []
ASTOTA = []

folder = path.Path(r"C:\Users\user\Desktop\testn")
with open('log.txt', 'w') as fw:
    for shpfile in glob.iglob('/*/*/Desktop/testn/*/*/*'):
        try:
            df = geopandas.read_file(shpfile).assign(col = get_folder(shpfile))
            if shpfile.endswith('AST.shp'):
                AST.append(df)
            else:
                ASTOTA.append(df)
        except FionaValueError as ex:
            if not os.listdir(shpfile):
                fw.write(f'{shpfile} is empty' + '\n') <- Here is where 
                                                          should write to the txt file

fw.write的位置显然是错误的部分,因为如果我用打印语句替换它,即使有 东西要写,它仍然不显示任何内容,因为有些文件夹确实是空的。

1 个答案:

答案 0 :(得分:0)

for循环遍历目录中的所有文件-如果目录中没有文件,则该循环将根本不会运行,因此它将永远不会丢失文件逻辑。也许类似以下内容,它检查目录中是否有文件,如果没有,则写入新文件:

ALTER TABLE dbo.MyTable
    ADD 
        ValidFrom DATETIME2 (2) GENERATED ALWAYS AS ROW START HIDDEN CONSTRAINT DFMyTable_ValidFrom DEFAULT DATEADD(SECOND, -1, SYSUTCDATETIME()),
        ValidTo DATETIME2 (2) GENERATED ALWAYS AS ROW END HIDDEN CONSTRAINT DFMyTable_ValidTo DEFAULT '9999.12.31 23:59:59.99',
        PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo);

ALTER TABLE dbo.MyTable 
    SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.MyTable_History));
GO