AttributeError:'_io.TextIOWrapper'对象没有属性'replace'

时间:2019-05-09 09:38:54

标签: python-3.x

我正在尝试创建一个关于猜名字的小测验。 当我从字符串中删除小写字符时出现错误,并且由于我还是Python的新手,所以我没有关于修复它的线索。 解决该问题我需要做什么?

artists = open('artists.txt') ## IF YOU WANT TO EDIT THE SONG NAMES AND ARTISTS
songs = open('songs.txt') ## YOU NEED TO LEAVE THEM IN ORDER

songfilter = 'abcdefghijklmnopqrstuvwxyz\/' #Lowercase Alphabet With Some Slashes To Remove "/n"

songsFiltered = [songs.replace(alphabet, '') for w in songs]

guessList = list(zip(artists, songs))

songSelect = random.choice(guessList)

print(songSelect)

我希望收到输出,例如

('Billie Eilish', 'B G')

1 个答案:

答案 0 :(得分:0)

歌曲不是字符串对象(因此没有替换功能),它是文件(读取器)对象(TextIOWrapper)。

要获取字符串,您必须读取()文件,

喜欢:

with open('songs.txt', 'r') as f:
   content = f.read()
   content.replace(alphabet, '')

代码中的歌曲同样适用,您无法遍历歌曲,必须将文件读取到字符串数组/列表中。