在文本文件中查找表并打印i

2024-09-27 23:20:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有包含以下数据的文本文件:

 EMethod_sel="ID"
 Sel_Ele_Search_Pattern="*D=30*" Sel_Ele_Label_Toggle=OFF
 Eid=SHOW_OK
 All 171665 elements are suitable
 ShowFE/XROT
 ECHConnect
 ShowFE/ZROT
 ShowFE/YROT
 Asca
 ShowFE/YROT
 Asca
 ShowFE/XROT
 EMSameNorm/ALL
 ShowFE/ZROT
 ECHPenetra ShellThick=Shell-Thickness, ScaleFac=0.9, SetID=9999
 * 20 coincident elements
 ECHCoincid
 Summary
 * O B J E C T   ( FE )           Total    Min-ID    Max-ID Show/Defi
 * ------------------------------------------------------------------
 * Nodes                         225965         1    226932    225785
 * Elements                      171665         1    198299    171665
 * Materials                          2       100       101         2
 * Properties                        46         1   1000009        46
 * Element Sets                      83         1     10000
 * ------------------------------------------------------------------
 * O B J E C T   ( PART )         Total    Min-LV    Max-LV
 * ------------------------------------------------------------------
 * Parts                              1         0         0
 * ------------------------------------------------------------------
 * O B J E C T   ( GEO )          Total   Minimum   Maximum      Show
 * ------------------------------------------------------------------
 * No GEO - Objects found
 * ------------------------------------------------------------------
 Asca
 ShowFE/XROT
 ShowFE/YROT
 EMSameNorm/
 ShowFE/ZROT
 Inertia EGeo_dist_sel=0.1 ETilt_angle_sel=30 EProperty_limits_sel=ON
 ELayer_limits_sel=ON ESame_face_IDs_only_sel=OFF
 Eid=SHOW

我需要找到它是否有任何表格或没有,如果有它应该打印出来,表格长度可能会有所不同。那我们怎么做呢? 是否有任何模块可以完成此任务?你知道吗


Tags: idshowelementstotaloffseleidele
1条回答
网友
1楼 · 发布于 2024-09-27 23:20:02

编辑:由于行SummaryAsca标记表的开始和结束,因此可以使用以下代码。你知道吗

with open("in.txt") as input:
    intable = False
    for line in input:
        if line.strip() == "Summary":
            intable = True
        if line.strip() == "Asca":
            intable = False
        if intable and line.strip().startswith("*"):
            print(line.strip())

输出:

* O B J E C T   ( FE )           Total    Min-ID    Max-ID Show/Defi
*                                  
* Nodes                         225965         1    226932    225785
* Elements                      171665         1    198299    171665
* Materials                          2       100       101         2
* Properties                        46         1   1000009        46
* Element Sets                      83         1     10000
*                                  
* O B J E C T   ( PART )         Total    Min-LV    Max-LV
*                                  
* Parts                              1         0         0
*                                  
* O B J E C T   ( GEO )          Total   Minimum   Maximum      Show
*                                  
* No GEO - Objects found
*                                  

相关问题 更多 >

    热门问题