![](/img/trans.png)
[英]AttributeError: '_io.TextIOWrapper' object has no attribute 'lower'
[英]AttributeError: '_io.TextIOWrapper' object has no attribute 'lower' for txt file
這是我的代碼(來自文本文件的豬拉丁語翻譯器):
f = open('Assignment_4.txt', 'r+')
for line in f:
print(line)
def pigLatin():
var = 'ay'
wordL = f.lower()
firstLetter = wordL[0]
pigLatin = wordL + firstLetter + var
pigLatin = pigLatin[1:]
print(pigLatin)
它適用於定義的字符串,但不適用於文件。 幫助表示贊賞!
積分:
lower()
適用於字符串。 您正在嘗試與文件句柄f
一起使用。 這就是您收到此錯誤的原因。pigLatin()
為pigLatin(line)
。 所以,現在, pigLatin() 函數需要一個參數。f.close()
。 如果您使用with
語句打開文件,它將是。帶有內聯注釋的代碼:
def pigLatin(stuff_to_be_changed):
var = 'ay'
wordL = stuff_to_be_changed.lower()
firstLetter = wordL[0]
pigLatin = wordL + firstLetter + var
pigLatin = pigLatin[1:]
print(pigLatin)
#For string
string = "I am to change"
#Call function
pigLatin(string)
f = open('Assignment_4.txt', 'r+')
#For file
for line in f:
print(line)
#Call function
pigLatin(line)
#Close the file
f.close()
錯誤是正確的 - 文件對象沒有lower()
方法 - 在您可以使用您的函數之前,您需要從文件中read
一行文本並將其split
為單獨的單詞。 (請注意,對變量和方法使用相同的名稱從來都不是一個好主意,因為這會導致混淆。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.