![](/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.