【发布时间】:2020-12-03 18:09:39
【问题描述】:
我编写了一段代码,用于搜索文本文件的目录,并根据我编写的 if 条件,复制、存储和写入新文件。我正在努力解决的问题是,当不同的 if 条件附加到同一个空列表时,它将第二个“if 条件”的输出存储为一个新的元素数组。但是,我希望将多个 if 条件的输出存储在同一行中。在这里更具体地说是我的代码如何在文本文件中存储和写入。
import matplotlib.pyplot as plt
import numpy as np
import math
from scipy.optimize import curve_fit
from IPython import embed
import os
File = 'results.txt'
ospath = os.walk('/Users/analyses/')
mylist=[]
for subdir, dirs, files in ospath:
if File in files:
filepath = subdir + '/' + File
with open(filepath) as fp:
for line in fp:
line_list = []
if "Bckgnd subtracted source c/r" in line:
line_array = line.split(" ")
mylist.extend((line_array[5],line_array[7].rstrip("\n")))
elif "Bckgnd subtracted source cnts" in line:
line_array = line.split(" ")
mylist.extend((line_array[5],line_array[7].rstrip("\n")))
mylist.append(line_list)
mylist = np.asarray(mylist)
with open("mylist.txt", "w") as txt_file:
for line in mylist:
txt_file.write('\n'.join(','.join(elems) for elems in mylist))
输出:
11.3,4.8
id_06,BANANA
9.3,5.6
id_01,APPLE
8.7, 23.8
id_08, ORANGE
mylist[0] = [11.3,4.8] #comes from first if condition
mylist[1] = [id_06,BANANA] #comes from second if condition
我想要的方式:
11.3,4.8,id_06,BANANA
9.3,5.6,id_01,APPLE
8.7, 23.8, id_08, ORANGE
在哪里mylist[0] = [11.3,4.8,id_06,BANANA]
【问题讨论】:
-
尝试使用
if和elif语句而不是两个if语句,因为这样一次只会激活一个条件,即使两个条件都满足。 -
我得到了与 elif 相同的结果。
-
你确定你的缩进没问题吗?您提供的示例中 mylist.append 语句超出了 if 块等内容。
标签: python arrays python-3.x list numpy