我正在处理的一个更大的代码问题的一小部分:我正在从文件中读取内容:glm文件.glm。我试着写下glm文件.glm另一个文件:组合.glm跳过符合特定条件的行。你知道吗
glmfile=open("glmfile.glm",'r').readlines()
combined=open("combined.glm",'w')
的内容glm文件.glm如下所示:
...
#other objects
object node {
name SPU123-389-3066753-3_breaker_rec_recnode;
phases ABC;
nominal_voltage 7621.024;
}
object node {
name SPU123-416-25308_recnode;
phases ABC;
nominal_voltage 7621.024;
}
object node {
name SPU123-403-492320;
groupid from_db;
phases CN;
nominal_voltage 7621.024;
}
object node {
name SPU123-392-97334;
groupid from_db;
phases ABCN;
nominal_voltage 7621.024;
}
object node {
name SPU123-391-348982;
groupid from_db;
phases AN;
nominal_voltage 7621.024;
}
object node {
name SPU123-391-542649;
groupid from_db;
phases AN;
nominal_voltage 7621.024;
}
#few more node objects and other objects
...
现在,我形成了一个node_names
数组,如下所示:
node_names=['389-3066753','403-492320','392-97334','391-348982']
我将glmfile的名称与数组中的元素进行比较,以查看对象节点名称是否列在数组node_names
中:
for h,aaline in enumerate(glmfile):
if aaline.startswith('object node {') and ('SWING' not in glmfile[h+3]):
if glmfile[h+1][13:-2].strip() in node_names:
#DO NOT WRITE THAT ENTIRE OBJECT NODE SECTION to 'combined'
#I am able to skip just that line 'glmfile[h]' but how to NOT
#write out the entire object node i.e., glmfile[h:h+6]?
print glmfile[h:h+6]
else:
combined.writelines([glmfile[h:h+6]])
注意:我正在努力解决的问题在if case
注释中的上述代码片段中。你知道吗
让我们先谈一谈宽泛的术语,然后再具体说明。你知道吗
您的对象看起来像:
您正试图从一个文件中写入这些对象到另一个空白文件中,只获取
那么,让我们这样做:
也就是说,如果这是您要反复做的事情,那么最好为此编写一个解析器。你知道吗
你知道吗
你知道吗
使用额外的索引和模运算符如何:
例如:
相关问题 更多 >
编程相关推荐