为什么islice只打印[]?

时间:2014-01-21 19:32:02

标签: python python-2.7 scripting

以下功能应该打印200行,而只打印“[]”。我不完全确定我在哪里出错,想要一双新眼睛来帮助我。

谢谢!

def main():
from itertools import islice
userfile = raw_input("Please enter the file you wish to open\n(must be in this directory): ")
file1 = open(userfile, "r+")
jcardtop = file1.read(221);
#print jcardtop
n = 200
while True:
    next_n_lines = list(islice(file1,n))
    if not next_n_lines:
        break
print next_n_lines

1 个答案:

答案 0 :(得分:2)

如果您的代码实际上与您发布的内容相似:

while True:
    next_n_lines = list(islice(file1,n))
    if not next_n_lines:
        break
print next_n_lines

...然后问题是在循环完成之前你没有print任何东西,这意味着你只打印最后一个切片,根据定义,它是空的。

如果您的代码在文本编辑器中看起来不像,那么仍然看起来像是Python,因为您可能正在混合制表符和空格。尝试使用更好的文本编辑器 - 几乎任何东西,但Notepad或TextEdit将有一个选项将选项卡转换为空格,或显示选项卡明显。或者使用Python的-tt标志运行脚本。