搜索文件中的特定字符串,并将后面的字符串保存到python文件中

2024-10-04 03:24:54 发布

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

我想从我的文件中保存一些特定的数据,看起来是这样的:

[StagePositionMapFile]
[StageMapPosition]
XCoordinate=-1.37525e-003
YCoordinate=-5.52599999999999e-003
ZCoordinate=9.96477272727273e-003
RCoordinate=-2.18201293271677
TCoordinate=-1.19239958528248e-004
PositionName=Position 14

[StageMapPosition]
XCoordinate=-1.40625e-003
YCoordinate=-5.01925000000001e-003
ZCoordinate=9.96477272727273e-003
RCoordinate=-2.18201293271677
TCoordinate=-9.31942430672605e-005
PositionName=Position 13

[StageMapPosition]
XCoordinate=-1.387625e-003
YCoordinate=-4.68562500000001e-003
ZCoordinate=9.96477272727273e-003
RCoordinate=-2.18201293271677
TCoordinate=-9.31942430672605e-005
PositionName=Position 12 

我只想在XCoordinate和YCoordinate之后保留数据,所以我所做的是读取文件并根据等号将其拆分,然后lign返回,正如您在我的代码中看到的:

   with open("E:/WOrk/PHD/SEM_images/NS65/Systematic_study/100_uM /NS_65_6_K_15_mM_100_uM_B4_66%_60_s/positionw.txt","r") as openfile:



    for line in openfile :


        s=line.split("=")


        for index,line in enumerate(s) :


            list=[index,line]
            list2=line.split("\n")

但是,我不太明白line.split(“\n”)中出现了什么,因为我只得到一个值在=号之后的列表,而没有得到列表中的XCoordinate字符串

第二件事是,然后我想说,当XCoordinate在列表中被发现时,把字符串放在后面。我知道我可以使用枚举和索引。但是当我试图打印真的,如果XCoordinate在那里,它不会打印任何东西

最后我想要这样的东西:

(values of XCoordinate)         (values of YCoordinate)
-1.37525e-003                    -5.52599999999999e-003

编辑:

我更改了代码并列出了文件文本中的所有单词:

with open("E:/WOrk/PHD/SEM_images/NS65/Systematic_study/100_uM/NS_65_6_K_15_mM_100_uM_B4_66%_60_s/positionw.txt","r") as openfile:


        separate=list()
        for line in openfile :


            s=line.split("=")


            for element in s :

                element2=element.split("\n")

                for value in element2: 


                    separate.append(value)

        for index,valeur in enumerate(separate) :

            chaine="XCoordinate"
            print(valeur)
            print("stop")
            if chaine in valeur :

                print("true")

现在,每当XCoordinate出现时,我都应该明白了,但事实并非如此:/

谢谢你的帮助

马泰斯


Tags: 文件inforlinepositionumsplitopenfile
1条回答
网友
1楼 · 发布于 2024-10-04 03:24:54

我觉得这个剧本适合你

text=''
    regx =re.compile('((XCoordinate=[-]{0,1}[0-9]*.[0-9]*e-[0-9]*)\n(YCoordinate=[-]{0,1}[0-9]*.[0-9]*e-[0-9]*))')
    with open('test.txt', 'r+') as file:
        for line in file:
            text += line

    find = re.findall(regx,text)
    print ('findaa  ', find)

结果会是

[('XCoordinate=-1.37525e-003\nYCoordinate=-5.52599999999999e-003', 'XCoordinate=-1.37525e-003', 'YCoordinate=-5.52599999999999e-003'), ('XCoordinate=-1.40625e-003\nYCoordinate=-5.01925000000001e-003', 'XCoordinate=-1.40625e-003', 'YCoordinate=-5.01925000000001e-003'), ('XCoordinate=1.387625e-003\nYCoordinate=-4.68562500000001e-003', 'XCoordinate=1.387625e-003', 'YCoordinate=-4.68562500000001e-003')]

相关问题 更多 >