将文本文件转换为python上的列表

时间:2014-11-30 12:49:04

标签: python list python-3.x split text-files

def prepositions():
    file = open('prepositions.txt', 'r')
    thetext = [line.split(',') for line in file.readlines()]
    for line in file.readlines():
        row.append([line])
        for i in line.split(","):
            row[-1].append(i)
            print(prepositions)

我有一个名为prepostions.txt的文件,其中包含以逗号分隔的介词,例如:

害怕,瞄准,惶惑,赞同,......等等。

我正在尝试将其转换为列表并打印出列表,但是当我运行上面的代码时,即使没有出现错误,也没有打印出任何内容。 因此,例如,我希望它打印以下内容并将其保存为变量中的列表:

害怕

瞄准

担心

批准

文章

4 个答案:

答案 0 :(得分:2)

为什么需要两次读取文件?阅读一次并将其转换为列表:

def prepositions():
    items = []
    with open('test.txt') as input:
        for line in input:
            items.extend(line.strip().split(','))
    return items

print(prepositions())

答案 1 :(得分:0)

file = open('prepositions.txt', 'r')
thetext = [line.split(',') for line in file.readlines()]

执行此操作后,文件指针位于末尾。因此,下一行readlines()将无效。在第二个读取行之前使用file.seek(0)并且存在大量错误。请使用此代码

def prepositions():
    file = open('input.txt', 'r')
    return [line.split(',') for line in file.readlines()]

print(prepositions)

答案 2 :(得分:0)

#The filename
filen = "awesome.txt"
#convert line into the list
lines = [line.strip() for line in open(str(filen))]
#getting line count and print out
with open(str(filen)) as f:
    c = sum(1 for _ in f)
i=0
n=int(c)
while i < n:
    print (str(lines[int(i)])) 
    i=i+1  

我不知道这是否有帮助,如果文本文件的结构如此,那么这就是你的答案:D:

你好 酷
让我开心 很酷 无论
等等

答案 3 :(得分:0)

这应该这样做:

def prepositions():
    with open('prepositions.txt', 'r') as myFile:
        prepositions = myFile.read().split(",").split("\n")
    for preposition in prepositions:
        print preposition

您的问题似乎是您从未定义行,即:

row = []

意味着你会一直覆盖它,最后你会得到一个空的列表,因为你追加的最后一个值是空行或空格。