Python:If语句用于读取Txt文件
这是我的密码:Python:If语句用于读取Txt文件,python,if-statement,Python,If Statement,这是我的密码: print "Note: Your file is available now." viewYourFile = raw_input("\nDo you wish to view this file now? ") if viewYourFile == 'Y' or 'y': fo = open('messages.txt', 'r+') #Read whole file into data data = fo.read() print data
print "Note: Your file is available now."
viewYourFile = raw_input("\nDo you wish to view this file now? ")
if viewYourFile == 'Y' or 'y':
fo = open('messages.txt', 'r+')
#Read whole file into data
data = fo.read()
print data
# Close the file
fo.close()
elif viewYourFile == 'N' or 'n':
print "Thank you!"
else:
print "Didn't recognize user input"
当我输入“n”时,文本文件仍然打开。如果用户键入“N”或“N”,我希望脚本在不将文本打印到终端的情况下继续
我看不出我做错了什么。有人能帮我再看一下吗?非常感谢。
如果查看您的文件=='Y'或'Y':
总是计算为True
,因为第二个条件'Y'
总是True
>>> bool('y')
True
>>> bool(False or 'y')
True
如果在('Y','Y')中查看您的文件,请使用:
另外,不要手动关闭文件,而是与上下文管理器一起使用。下面是生成的代码:
print "Note: Your file is available now."
viewYourFile = raw_input("\nDo you wish to view this file now? ")
if viewYourFile in ('Y', 'y'):
with open('messages.txt', 'r+') as fo:
data = fo.read()
elif viewYourFile in ('N', 'n'):
print "Thank you!"
else:
print "Didn't recognize user input"
另见:
如果查看您的文件=='Y'或'Y':
总是计算为真
,因为第二个条件'Y'
总是真
>>> bool('y')
True
>>> bool(False or 'y')
True
如果在('Y','Y')中查看您的文件,请使用:
另外,不要手动关闭文件,而是与上下文管理器一起使用。下面是生成的代码:
print "Note: Your file is available now."
viewYourFile = raw_input("\nDo you wish to view this file now? ")
if viewYourFile in ('Y', 'y'):
with open('messages.txt', 'r+') as fo:
data = fo.read()
elif viewYourFile in ('N', 'n'):
print "Thank you!"
else:
print "Didn't recognize user input"
另见:
我认为越聪明,就会产生一个寄存器:
if viewYourFile.lower() == 'y':
我认为越聪明,就有一个寄存器:
if viewYourFile.lower() == 'y':
你应该做:
if viewYourFile == 'Y' or viewYourFile == 'y':
或如建议的那样,即:
if viewYourFile in ('Y', 'y'):
另一个减少键入的好方法是:
if viewYourFile.lower() == 'y':
你应该做:
if viewYourFile == 'Y' or viewYourFile == 'y':
或如建议的那样,即:
if viewYourFile in ('Y', 'y'):
另一个减少键入的好方法是:
if viewYourFile.lower() == 'y':
谢谢,这很有效。你能解释一下为什么它的计算结果为真,但它不使用括号吗?@BubbleMonster不客气,请参阅更新的答案,希望答案清楚。@BubbleMonster也在这里看到解释:谢谢,是的,这很有意义,但是,当我这样做时:使用open('messages.txt','r+')作为fo-我得到一个错误:无效语法。不太清楚为什么。@BubbleMonster哦,对不起,漏掉了冒号,编辑好了,试试看。谢谢你的帮助。你能解释一下为什么它的计算结果为真,但它不使用括号吗?@BubbleMonster不客气,请参阅更新的答案,希望答案清楚。@BubbleMonster也在这里看到解释:谢谢,是的,这很有意义,但是,当我这样做时:使用open('messages.txt','r+')作为fo-我得到一个错误:无效语法。不太清楚为什么。@BubbleMonster哦,对不起,漏掉了冒号,编辑好了,试试看。谢谢Santosh。投票支持那个信息。我不知道我必须使用一个参数声明变量两次!谢谢桑托什。投票支持那个信息。我不知道我必须使用一个参数声明变量两次@如果您得到答案,请选择一个。@BubbleMonster如果您得到答案,请选择一个。