Python循环将由字符标识的特定行复制到csv文件或任何文本文件中



首先,我想从我试图使其工作的实际代码开始:

for Num in range(200,307):
with open(work_path+"RESULTSRES"+str(Num)+"_power_total.res","r") as f:
a=0
for line in f.readlines():
liste = line.split( )
if liste[0] == '1' :       
F=float(liste[1])
W=float(liste[2])
a = a + 1
list.append(liste[1])
list.append(liste[2])          
list=list[::-1]          
np.savetxt('res.csv', (list), delimiter=' ')

我想做的是:在";结果";文件夹中有大量文件共享该名称,除了一个数字,即str(Num(。

注:那些";。res";文件只是文本文件,例如可以在写字板中打开。

不管怎样,.res文件也有相同的结构,比如35行都以字符"开头#&";。除了在一行,它以数字"0"开头;1〃;。这个数字后面有两个数字。例如:


"#胡言乱语

"#胡言乱语

"#胡言乱语

"1 2.0E+5 5.051511E+10

"#胡言乱语


所以我想做的是简单地扫描所有文件,读取它们,并复制/粘贴以数字"开头的所有行;1〃;,转换为另一个文件(res.csv文件(,以便以后在Excel中使用。

最后,我想要一个res.csv文件,看起来像这样:


2.0E+5 5.051511E+10

2.5E+5 4.464868E+09

2.7E+5 5.1261461+09

等等。。。


现在对于我得到的错误,我一直有这样的错误:";缩进错误:意外缩进"但是我没有发现我放的压痕有什么问题吗?

顺便说一句,我对编程有点陌生,所以请耐心等待。提前感谢并致以最良好的问候。

清除缩进并将追加放入循环后,它似乎可以工作了。我也把它作为一个函数:

def process_file(myfile):
my_list = []                      # create a list to hold filtered data 
with open(myfile,"r") as f:
a=0
for line in f.readlines():
liste = line.split()      # this line had 5-space indent
if liste:                 # eliminate empty lines    
if liste[0] == '1' :  # this line had 5-space indent
F=float(liste[1]) # F and W can be omitted if not used elsewhere
W=float(liste[2])
my_list.append(F)
my_list.append(W)          
a = a + 1
my_list=my_list[::-1]             # is this list inversion intended?
return my_list
# print(process_file("some_file.txt"))   ===> [50515110000.0, 200000.0]

相关内容

  • 没有找到相关文章

最新更新