簡體   English   中英

f.readline()!='0',即使讀取僅包含0的行

[英]f.readline() != '0' even if reading a line containing only 0

在使用var = f.readline()函數在程序中設置變量時,我沒有遇到麻煩,但是在從文本文件中讀取時,使用if語句遇到了麻煩。 我試圖查看文本文件中是否為0,並且每次使用if f.readline() == '0':它的行為就好像它不等於0。

我的腳本示例如下:

f = open("file.txt","r")

myvar = f.readline()
f.close



if myvar == "0":
    print "The variable is 0"
    raw_input("Press enter to continue")
else:
    print "The variable is not 0"
    raw_input("Press enter to continue")

我的代碼將顯示為The variable is not 0

為什么是這樣? 以及如何在readline函數中使用if語句?

readline方法不會從行中刪除結尾的換行符。 您需要手動執行此操作:

myvar = f.readline().rstrip()

否則, myvar等於"0\\n" ,不等於"0"


另外,您忘記了通過調用close方法來關閉文件:

f.close() # Notice the parenthesis

當然,使用with語句會更好:

with open("file.txt") as f:
    myvar = f.readline().rstrip()

當控件離開其代碼塊時, with將自動關閉文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM