免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2948 | 回复: 1
打印 上一主题 下一主题

提取文件某一行的某个参数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-27 10:49 |只看该作者 |倒序浏览
本帖最后由 zhanshenchuanyu 于 2010-09-27 10:50 编辑

在一个文本文件中我需要添加以下的句子
……
SSFORC, 0.05, 0,0,0, _PickedSet8, 1,0,0
SSTORQ, 0.05, 0,0,0, _PickedSet8, 0,1,0
SSFORC, 0.05, 0,0,0, _PickedSet9 1,0,0
SSTORQ, 0.05, 0,0,0, _PickedSet9, 0,1,0
……
有个问题,比如_PickedSet8和_PickedSet9两个数可变,不同的文本对应的数不一样。
文本前面有对应的几句话决定了这里的是8和9:
** Constraint: Constraint-1
*Rigid Body, ref node=_PickedSet8, analytical surface=Rollerup-1.Surf-Rollerup, position=CENTER OF MASS, isothermal=YES
** Constraint: Constraint-2
*Rigid Body, ref node=_PickedSet9, analytical surface=Rollerdown-1.Surf-Rollerdown, position=CENTER OF MASS, isothermal=YES
我想通过程序从这两句话中找出_PickedSet8和_PickedSet9,8和9即便可变,添加语句数跟着变即可。
尝试写了一部分:
f1 = open('job-1.inp','r')
while 1:
    text=f1.readline()
    if text=='':
        break
    elif text=='** Constraint: Constraint-1\n':
        textx=f1.readline()
        print textx        
    elif text=='** Constraint: Constraint-2\n':
        textx=f1.readline()
        print textx
结果
>>>
*Rigid Body, ref node=_PickedSet8, analytical surface=Rollerup-1.Surf-Rollerup, position=CENTER OF MASS, isothermal=YES
*Rigid Body, ref node=_PickedSet9, analytical surface=Rollerdown-1.Surf-Rollerdown, position=CENTER OF MASS, isothermal=YES

论坛徽章:
0
2 [报告]
发表于 2010-09-27 13:06 |只看该作者
本帖最后由 zhanshenchuanyu 于 2010-09-27 14:20 编辑

发现提取问题经过文件语句的挑选好弄,但是问题在赋值
比如一个文件,在相应语句中找到了
** Constraint: Constraint-1
*Rigid Body, ref node=_PickedSet8, analytical surface=Rollerup-1.Surf-Rollerup, position=CENTER OF MASS, isothermal=YES
** Constraint: Constraint-2
*Rigid Body, ref node=_PickedSet9, analytical surface=Rollerdown-1.Surf-Rollerdown, position=CENTER OF MASS, isothermal=YES
找到了8和9,但是当我赋值的时候,我原来的程序如下:
     f1 = open('job-1.inp','r')
        f2 = open('Pass1.inp','w')
        while 1:
            text=f1.readline()
            if text=='':
                break
            elif text=='Rollerdown-1.Surf-Rollerdown, THREEDPARTMESH-1.Surf-outer\n':
                text1=text+'*STEADYSTATEDETECTION, ELSET=THREEDPARTMESH-1.Whole-part, SAMPLING=PLANEBYPLANE\n'
                text2=text1+'0,0,-1,0,0,-100\n'
                text3=text2+'*STEADYSTATECRITERIA\n'
                text4=text3+'SSPEEQ, 0.05, 0,0,0\n'
                text5=text4+'SSSPRD, 0.05, 0,0,0\n'
                text6=text5+'SSFORC, 0.05, 0,0,0, _PickedSet8, 1,0,0\n'
                text7=text6+'SSTORQ, 0.05, 0,0,0, _PickedSet8, 0,1,0\n'
                text8=text7+'SSFORC, 0.05, 0,0,0, _PickedSet9, 1,0,0\n'
                text=text8+'SSTORQ, 0.05, 0,0,0, _PickedSet9, 0,1,0\n'
            f2.write(text)
        f1.close()
        f2.close()
8和9用一个变量赋值显然不行。
text6=text5+'SSFORC, 0.05, 0,0,0, _PickedSetX, 1,0,0\n'
text7=text6+'SSTORQ, 0.05, 0,0,0, _PickedSetX, 0,1,0\n'
text8=text7+'SSFORC, 0.05, 0,0,0, _PickedSetY, 1,0,0\n'
text=text8+'SSTORQ, 0.05, 0,0,0, _PickedSetY, 0,1,0\n'
赋语句里头变量怎么办?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP