+-
试图用python从另一个文件中读取数据。

我试图让我的代码从另一个文件中读取数据。文件中的数据 emaillist.txt 是以如下格式写的。

a
b
b
c
s
f
s

现在我试图从这个文件中随机选取一封邮件,但我得到了一个错误。 这是代码{注意: 这是一段代码,我已经导入了正确的库}。

with open('emaillist.txt') as emails:
                read_emails = csv.reader(emails, delimiter = '\n')
        for every_email in read_emails:
                return random.choice(every_email)

这就是错误的原因

Traceback (most recent call last):
  File "codeOffshoreupdated.py", line 56, in <module>
    'email': email_random(),
  File "codeOffshoreupdated.py", line 12, in email_random
    for every_email in read_emails:
ValueError: I/O operation on closed file.

你能帮我解决这个问题吗?这将是非常有帮助的。谢谢您的帮助

1
投票

这段代码将从文件中的emilas中返回一个随机的电子邮件,因为在你的代码中,从文件中返回的第一封电子邮件,因为它是第一次迭代。for every_email in read_emails:

with open('emaillist.txt') as emails:
     read_emails = csv.reader(emails, delimiter = '\n')
     return random.choice(list(read_emails))[0]
1
投票

缩进你的for循环,像这样。

with open('emaillist.txt') as emails:
                read_emails = csv.reader(emails, delimiter = '\n')
                for every_email in read_emails:
                        return random.choice(every_email)