所以我有一个来自地震实验机输出的txt文件:
23 (-9.144, 2.7432, 0) [HybridDamper/Floor 1 Disp m,--,--] #ffffff
24 (-4.572, 0, 0) #ffffff
# End Node section
===
# Begin Member section
gl gr #eeeeee
23 D1 yellow
所以有一个#Endode Node部分,===,#Begin Member secion,用于分隔输出的两个部分。 我想创建两个数据帧,一个用于上面的部分,另一个用于下面的部分。
无需从机器手动编辑输出文件(当结构很大时这不容易),是否可以让pandas从.txt文件中识别零件分隔符(例如,这些行从#,=开始)?
谢谢你们! 最好 肖恩
答案 0 :(得分:3)
from io import StringIO
import pandas as pd
with open('mytext.txt') as f:
txt = f.read()
marker = '# End Node section\n===\n# Begin Member section'
txt1, txt2 = txt.split(marker)
df1 = pd.read_csv(StringIO(txt1), header=None, sep='|')
df2 = pd.read_csv(StringIO(txt2), header=None, sep='\s+', engine='python')