Как прочитать определенный столбец, начиная с произвольной строки, в массив или список в python? - PullRequest
0 голосов
/ 01 марта 2020

У меня есть файл, содержимое которого указано ниже. Я хочу прочитать первый столбец каждого набора строк, ограниченного сверху #number и снизу /. Я использую numpy .loadtxt, чтобы загрузить первый столбец в список, затем записываю список в другой файл. После этого я обнуляю список, чтобы использовать его для второго набора строк, расположенных между #number и /. Когда я запускаю код, упомянутый ниже, результат просто повторяется #10. Переменная j относится к строке, с которой должен начинаться список.

Вот файл данных:

.
.
.
10.6591 11.6682 0 
11.8203 11.085 0 
/
#2010
1.04278 0.737555 0 
1.53289 2.65857 0 
0.608964 2.99816 0 
4.09402 2.37107 0 
.
.
10.7983 8.63822 0 
8.88198 9.40865 0 
9.07551 10.4474 0 
10.1997 10.6621 0 
10.681 11.6815 0 
11.8465 11.0525 0 
/
#2020
1.09799 0.748961 0 
1.53974 2.69157 0 
0.529959 2.99443 0 
.
.
. 

Вот мой код:

f=open("no_header_run.txt","r")
ff=open("f_s.txt","w")

parsing=False
i=0

for line in f:
    if line.startswith("#"):
        parsing=True
        ff.write("#"+str(10*i)+"\n")
        continue
    if parsing:
        if line.startswith("/"):
            parsing=False
            continue
        j=2*(i+1)+121*i
        x=np.loadtxt("no_header_run.txt", skiprows=j, usecols=(0,), unpack=True, max_rows=121)
        continue
    for k in range(len(x)):
        ff.write("%5.6f \n" % x[k])
    i=i+1
    x=[]

f.close()
ff.close()

Может кто-нибудь помочь мне понять, в чем проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...