Python文件文件到字符串列表

时间:2013-07-16 03:47:14

标签: python python-3.x

我正在打开一个可能是这样的文件......

  

这是最好的时期,

     

这是最糟糕的时期。

假设这个文件名是myFile1.txt

我希望文件分成这个

[['It','was','the','best','of','times',','],
 ['it','was', 'the','worst','of','times','.']]

它应该是一个字符串列表......

这是我的想法......

def Split():
  inFile=open('myFile1.txt','r')

  for line in inFile:
    separate=list(line.split())
    return(separate)

print(Split())

会是这样的吗?

3 个答案:

答案 0 :(得分:0)

def Split():
    results=[]
    inFile=open('myFile1.txt','r')
    for line in inFile.readlines():
        results.append(line.split())
    return results

print(Split())

然后一切都应该正常。 :)

答案 1 :(得分:0)

只有一次通过for循环后才会返回。

你想要的是一个生成器,使用yield而不是return:

yield separate

现在你的函数创建了一个可以迭代的生成器对象。

for line in split():
    print line

(另外,最好不要将你的功能命名为内置方法。它们可能不会发生冲突,但比抱歉更安全。)

答案 2 :(得分:0)

您可以通过在循环外声明separate = [],然后将line.split()的结果附加到列表中来获取所需的列表。您不需要使用list函数,因为line.split()已经返回一个列表。

你可以试试这个:

def Split():
  separate = []
  with open('myFile1.txt','r') as inFile:
    for line in inFile:
      separate.append(line.split())
  return(separate)