我正在打开一个可能是这样的文件......
这是最好的时期,
这是最糟糕的时期。
假设这个文件名是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())
会是这样的吗?
答案 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)