如何修复使用csv.reader(打开(..)时的“AttributeError:\uuu输入”?

2024-06-02 08:53:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码出现以下错误:

Traceback (most recent call last):
File "C:\Users\XXX\Sentiment Analysis-vader.py", line 34, in <module>
    f.printer()

File "C:\Users\XXX\Sentiment Analysis-vader.py", line 18, in printer
    with csv.reader(open('analyse_' + str(bloombergcode) + '.csv', 'r'), delimiter= ",",quotechar='|') as q2:

AttributeError: __enter__

Process finished with exit code 1

我使用了以下代码:

import csv
from nltk.sentiment.vader import SentimentIntensityAnalyzer

class VaderSentiment:
    def __init__(self, bloomcode):
        self.bloomcode = bloomcode

    def print_sentiment_scores(self, sentence):
        self.sentence = sentence
        analyser = SentimentIntensityAnalyzer()
        snt = analyser.polarity_scores(self.sentence)
        print("{:-<40} {}".format(self.sentence, str(snt)))

    def printer(self):
        bloombergcode = self.bloomcode
        with csv.reader(open('analyse_' + str(bloombergcode) + '.csv', 'r'), delimiter= ",",quotechar='|') as q2:
            for line in q2:
                for field in line:
                    print_sentiment_scores(field)

for code in ('AAPL', 'NFLX'):
    f = VaderSentiment(code)
    f.printer()
    time.sleep(1)

我已经看到了一些其他类似的问题(Python Json with returns AttributeError: __enter__),但解决方案对我的问题不起作用

有人看到问题了吗


Tags: csvinselfdefwithlinecodeprinter
1条回答
网友
1楼 · 发布于 2024-06-02 08:53:52

您没有正确使用^{}。它不支持放在^{} statement中,这就是为什么会出现AttributeError: __enter__错误

试着用与usage example相同的方法来做:

with open('analyse_' + str(bloombergcode) + '.csv', 'r') as csv_file:
    q2 = csv.reader(csv_file, delimiter=',', quotechar='|')
    for line in q2:
        # ..rest of your code..

^{}包装在with内(因为open支持它,并且实际上是推荐的使用方法),然后在它内使用csv.reader

相关问题 更多 >