关于阅读文件的疑问

时间:2017-01-08 21:58:21

标签: python io

我有一个带有这个结构的Python文件:

我想要提取的字符串以及其他一些信息,例如整数

例如:<?xml-stylesheet type="text/xsl" href="list.xsl"?>

模型后面有很多行。为了提取我想要的东西,我想在Python中读取字符,而字符与SPACE不同。当角色是空格时,转到下一行并继续进行。

但是,我不知道如何实施......你们可以帮助我吗?

[增订] 我想将每个信息(房间,汽车,风扇......)存储在列表中。

2 个答案:

答案 0 :(得分:1)

您的问题有点令人困惑,但我认为https://docs.python.org/3/对您有用。

要阅读文件,您可以使用open("filename", "r")。对于文件中的每一行,您可以使用.split(" ")方法创建列表。最终,它看起来像这样:

data = []
file = open("filename", "r")
for line in file:
    data.append(line.split(" "))
print(data)
f.close()

变量数据可以是列表列表。

答案 1 :(得分:1)

您可以逐行读取文件(并为每一行执行一些操作),如下所示:

with open('filename') as file:
    for line in file:
        #do something with line here

然后使用string.split()形成一个数组,每当它读取一个空格时添加一个新项目。所以:

array = []
with open('filename') as file:
    for line in file:
        array.append(line.split())

#Result: [['**Room**', '61201', '1', 'png']]

你可以根据自己的喜好操纵数组中的信息。

为了从新数组中的行访问特定信息,运行一个简单的for循环,如下所示:

item1 = []
item2 = []
item3 = []
item4 = []

for dataset in array:
    item1.append(dataset[0])
    item2.append(dataset[1])
    item3.append(dataset[2])
    item4.append(dataset[3])

更加pythonic的方式是使用这样的数组字典:

dataDict = {0: [], 1: [], 2: [], 3: []}

for dataset in array:
    for i in range(len(dataset)):
        dataDict[i].append(dataset[i])

只要数据的顺序相同,就会将每个第n个元素附加到自己的数组中。

希望这有帮助!