Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取不同的文本文件并删除相同的索引行_Python - Fatal编程技术网

Python 读取不同的文本文件并删除相同的索引行

Python 读取不同的文本文件并删除相同的索引行,python,Python,我不是python程序员。但我需要为软件制作一个输入文件。我有一个a.txt文件和b.txt文件,a.txt中的每一行都对应于b.txt中的一个“索引”。 a、 txt: b、 txt: #indexes: 0 0 0 1 -0.375E+04 0.382E+01 2 -0.375E+04 0.432E+01

我不是python程序员。但我需要为软件制作一个输入文件。我有一个a.txt文件和b.txt文件,a.txt中的每一行都对应于b.txt中的一个“索引”。 a、 txt:

b、 txt:

#indexes:           0           0           0
       1        -0.375E+04         0.382E+01        
       2        -0.375E+04         0.432E+01        
       3        -0.376E+04         0.353E+01        
#indexes:           1           0           0
       1        -0.635E+04         0.331E+01
       2        -0.235E+04         0.238E+01
#indexes:           2           1           1
       1        -0.735E+04         0.093E+01
#indexes:           3           2           2
       1        -0.835E+04         0.331E+01
       2        -0.035E+04         0.438E+01  
#indexes:           4           2           2
       1        -0.475E+04         0.331E+01
       2        -0.365E+04         0.438E+01 
我需要在a.txt的第8列中提取带有“ACC”的行,并将它们存储在新的a_new.txt中

a_new.txt:

  0          0          0 L M L     41 ACC sh        1.008732   
  2          1          1 L M L     18 ACC sh        1.025172    
  3          2          2 L M L     17 ACC sh        1.017734   
然后读取b.txt文件,找到“索引”行,查看该行中的数字是否与ACC行(前3行)相同,然后将该索引框存储在b_new.txt中:

#indexes:           0           0           0
   1        -0.375E+04         0.382E+01        
   2        -0.375E+04         0.432E+01        
   3        -0.376E+04         0.353E+01        
#indexes:           2           1           1
   1        -0.735E+04         0.093E+01
#indexes:           3           2           2
   1        -0.835E+04         0.331E+01
   2        -0.035E+04         0.438E+01  
b_new.txt:

#indexes:           0           0           0
   1        -0.375E+04         0.382E+01        
   2        -0.375E+04         0.432E+01        
   3        -0.376E+04         0.353E+01        
#indexes:           2           1           1
   1        -0.735E+04         0.093E+01
#indexes:           3           2           2
   1        -0.835E+04         0.331E+01
   2        -0.035E+04         0.438E+01  

如果有人能帮助我,我将不胜感激。

花了几分钟时间:

import re
f = open('a.txt','r')
a = f.read()
f.close()
a_new = open('a_new.txt','w')
a_new.write('\n'.join(re.findall('(^.*ACC.*$)',a,re.M)))
a_new.close()
f = open('b.txt','r')
b = f.read()
f.close()
with open('b_new.txt','w') as b_new,open('a_new.txt','r') as a_new:
    inds = [x.replace(' ','') for x in re.findall('^\s*(\d\s*\d\s*\d)',a_new.read(),re.M)]
    for ind in inds:
        reg = '(#indexes:\s*{0}\s*{1}\s*{2}[\s\S]*?(?=#indexes|$))'.format(*list(ind))
        matches = re.findall(reg,b)
        b_new.write('\n'.join(matches))
运行后,
a_new.txt
将如下所示:

  0          0          0 L M L     41 ACC sh        1.008732
  2          1          1 L M L     18 ACC sh        1.025172
  3          2          2 L M L     17 ACC sh        1.017734
b_new.txt

#indexes:           0           0           0
       1        -0.375E+04         0.382E+01
       2        -0.375E+04         0.432E+01
       3        -0.376E+04         0.353E+01
#indexes:           2           1           1
       1        -0.735E+04         0.093E+01
#indexes:           3           2           2
       1        -0.835E+04         0.331E+01
       2        -0.035E+04         0.438E+01

我投票结束这个问题,因为这既不是一个代码编写,也不是教程服务,你的代码在哪里?你试过什么?你一直免费工作吗?我有一些工作要做…@RickyA,我是一名学生,我通过编码问题来学习,所以,几分钟(我不认为写5行代码是浪费时间)没什么大不了的,是的,如果你的工作感兴趣并帮助我学习一些东西,我将非常乐意提供帮助:)