我用Python编写了一个脚本,然后在命令行中运行它。输出的第一部分是我的预期。但是,它不打印第一行,因为我想要readline()
。我被问到第二个问题,但当我回答“是”时,它会打印一个空行。当我删除if语句和第一个问题时它工作正常,但我无法使用if语句。
这是脚本:
script, filename = argv
print("I'm going to open the file.")
txt1 = open(filename)
question1 = raw_input("Do you wanna see the content? ")
if (question1 == "yes" or question1 == "Yes"):
print(txt1.read())
question2 = raw_input("Do you want me to read just the first line? ")
if (question2 == "yes" or question2 == "Yes"):
print(txt1.readline())
提前致谢。
答案 0 :(得分:1)
open()
返回的文件对象会跟踪文件的位置。您对txt1.read()
的第一次调用会读取整个文件,并将您在文件中的位置提升到最后。如果要重置回文件的开头,可以在再次从文件中读取之前执行txt1.seek(0)
。
答案 1 :(得分:1)
您可能想要
txt1.seek(0)
两次读取之间。这会将您当前的位置重置为文件的开头。
更好的风格是
if (question1 == "yes" or question1 == "Yes"):
with open(filename) as txt1:
print(txt1.read())