首先,我想从我试图使其工作的实际代码开始:
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]