我正在为一个学校项目使用python,我有以下两个文件:
file = open("Songs.txt","r")
file = open("Artists.txt","r")
我想从我的艺术家文件中随机选择一个艺术家,然后打印出来
import random
with "Artists.txt":
ARTIST = random.randint(0,9)
print(ARTIST)
它还不断显示AttributeError:退出,并显示:
Traceback (most recent call last): File "N:\1GCSE\Computing\Programming Project\Project.py", line 26, in with "Artists.txt": AttributeError: _exit _
我该怎么办
我假设
txt
文件中的每一行都有艺术家的名字。因此,您应该逐行读取文件,然后将它们存储在list
中。然后随机选取列表中的元素注意:
.readlines()
与python3x兼容你可以试试这个:
问题在于
with
的用法。使用with
语句时,必须提供一个返回某些内容的执行,以及as
定义的变量:它计算
process
,对返回值调用__enter__
方法(称为“上下文保护”),并将__enter__
的返回值赋给变量foo
。之后,执行do_something
,不管发生什么,都会调用guard对象的__exit__
方法。请参阅更多here,这里的解释是从哪里来的。 所以不能像在代码中那样简单地将with
与文件名一起使用如果我没弄错的话,你的artist.txt文件有10行不同的艺术家,你试图随机选择其中一行并打印出来。例如,您可以执行以下操作:
这和
但是更安全、更有效,因为文件在执行代码后会自动关闭
这将读取文件中的所有行,将它们放在一个列表中,选择一个0到9之间的随机数,然后在该位置打印列表中的对象,从文件中随机生成一个艺术家
相关问题 更多 >
编程相关推荐