将文本文件解析为python中的列表

Rac*_*ose 4 python string list lines

我是Python的新手,我正在尝试读取包含单词和数字组合的txt文件.我可以在txt文件中读到很好,但是我很难将字符串变成我可以使用的格式.

import matplotlib.pyplot as plt
import numpy as np
from numpy import loadtxt

f= open("/Users/Jennifer/Desktop/test.txt", "r")

lines=f.readlines()

Data = []

list=lines[3]
i=4
while i<12:
        list=list.append(line[i])
        i=i+1

print list

f.close()
Run Code Online (Sandbox Code Playgroud)

我想要一个包含第3-12行(从0开始)的所有元素的列表,这是所有数字.当我打印行[1]时,我从该行获取数据.当我打印线条或打印线条[3:12]时,我会得到每个字符前面的\ x00.例如,单词"Plate"变为:['\ x00P\x00l\x00a\x00t\x00e.使用lines = [line.strip()获取f中的行]得到相同的结果.当我尝试在上面的while循环中将各个行放在一起时,我得到错误"AttributeError:'str'对象没有属性'append'."

如何从txt文件到列表中选择一行?非常感谢!!!

编辑:txt文件如下所示:

BLOCKS = 1板:磷酸盐噪声测定2000x 1.3 PlateFormat终点吸光度原始FALSE 1 1 650 1 12 96 1 8
温度(¡C)1 2 3 4 5 6 7 8 9 10 11 12
21.4 0.4977 0.5074 0.5183 0.5128 0.5021 0.5114 0.4993 0.5308 0.4837 0.5286 0.5231 0.5227
0.488 0.4742 0.5011 0.4868 0.4976 0.4845 0.4848 0.5179 0.4772 0.5363 0.5109 0.5197
0.4882 0.4913 0.4941 0.5188 0.4766 0.4914 0.495 0.5172 0.4826 0.5039 0.504 0.5451
0.4771 0.4875 0.523 0.4851 0.4757 0.4767 0.4918 0.5212 0.4742 0.5153 0.5027 0.5235
0.4474 0.4841 0.5193 0.4755 0.4649 0.4883 0.5165 0.5223 0.4799 0.5269 0.5091 0.5191
0.4721 0.4794 0.501 0.4467 0.4785 0.4792 0.4894 0.511 0.4778 0.5223 0.4888 0.5273
0.4122 0.4454 0.314 0.2747 0.4621 0.4416 0.3716 0.2534 0.4497 0.5778 0.2319 0.1038
0.4479 0.5368 0.3046 0.3115 0.4745 0.5116 0.3689 0.3915 0.4803 0.5209 0.1981 0.1062

〜最终原始文件名:2013-08-06磷酸盐噪声; 上次保存的日期:2013年8月6日下午7:00:55

更新 我使用此代码:

f= open("/Users/Jennifer/Desktop/test.txt", "r")
file_list = f.readlines()

first_twelve = file_list[3:11]

data = [x.replace('\t',' ') for x in first_twelve]
data = [x.replace('\x00','') for x in data]
data = [x.replace(' \r\n','') for x in data]

print data
Run Code Online (Sandbox Code Playgroud)

得到这个结果:['21.4 0.4977 0.5074 0.5183 0.5128 0.5021 0.5114 0.4993 0.5308 0.4837 0.5286 0.5231 0.5227','0.488 0.4742 0.5011 0.4868 0.4976 0.4845 0.4848 0.5179 0.4772 0.5363 0.5109 0.5197','0.4882 0.4913 0.4941 0.5188 0.4766 0.4914 0.495 0.5172 0.4826 0.5039 0.504 0.5451 ' '0.4771 0.4875 0.523 0.4851 0.4757 0.4767 0.4918 0.5212 0.4742 0.5153 0.5027 0.5235', '0.4474 0.4841 0.5193 0.4755 0.4649 0.4883 0.5165 0.5223 0.4799 0.5269 0.5091 0.5191', '0.4721 0.4794 0.501 0.4467 0.4785 0.4792 0.4894 0.511 0.4778 0.5223 0.4888 0.5273',' 0.4122 0.4454 0.314 0.2747 0.4621 0.4416 0.3716 0.2534 0.4497 0.5778 0.2319 0.1038','0.4479 0.5368 0.3046 0.3115 0.4745 0.5116 0.3689 0.3915 0.4803 0.5209 0.1981 0.1062']

这是(纠正我,如果我错了,对Python来说很新!)列表列表,我应该能够使用它.非常感谢所有回复的人!

Pet*_*oti 6

当你编写代码时lines = f.readlines(),一行代码将返回给你.当你说lines[3],你得到第3行.这就是为什么你最终会遇到个别角色.

你需要做的就是说

files = open("Your File.txt")

file_list =  files.readlines()

first_twelve = file_list[0:12] #returns a list with the first 12 lines
Run Code Online (Sandbox Code Playgroud)

一旦你有了first_twelve阵列,你就可以随心所欲地做任何事情.

要打印每行,您将执行以下操作:

for each_line in first_twelve:
    print each_line
Run Code Online (Sandbox Code Playgroud)

这对你有用.