我将代码编写如下,通过拆分提取所有表格数据。现在我想
通过删除表中间的文本来提取最后一列(值)数据。
import re
f_read = open('filename','r')
f_write=open('filename','w')
str='CEN/4'
for line in f_read:
m=re.search(str,line)
if m:
for line in f_read: # loop over the rows
if not line.strip():
continue
line = line.split(' ',1) # parse the columns
print line
f_write.writelines(line)
表看起来像这样,然后在每一列中都有值。现在我想删除文本并提取值。
S T R E S S E S I N Q U A D R I L A T E R A L E L E M E N T S ( Q U A D 4 ) OPTION = BILIN
ELEMENT FIBER STRESSES IN ELEMENT COORD SYSTEM PRINCIPAL STRESSES (ZERO SHEAR)
ID GRID-ID DISTANCE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR VON MISES
121 3423 342 4545 45435 4345 42353 3456456 67658 3435
最佳答案
如果我了解您的问题,则您的代码中有几处错误。值得注意的是,您不能以所示方式读写同一文件。使情况复杂化的是,存在嵌套的for
循环,它们都从同一输入文件读取行。
这是一个修订版,通过写入一个单独的输出文件并在单个for
循环的控制下进行所有操作来避免这些问题。我还复制了输入文件中的数据行,并更改了其中的所有数字,因此它们以9
开头,因此将有多行数据用于测试。
import re
with open('filename','r') as f_read, open('filename2','w') as f_write:
for line in (line.strip() for line in f_read):
if re.search(r'^\d+', line): # line starts with a number?
columnar_data = ' '.join(line.split())
print columnar_data
f_write.write(columnar_data+'\n')
输出文件的内容(
filename2
):121 3423 342 4545 45435 4345 42353 3456456 67658 3435
921 9423 942 9545 95435 9345 92353 9456456 97658 9435
关于python - 需要帮助以提取列数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15734139/