在python中的评估在csv文件中

oewdyzsn  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(117)

你好,我试图创建一个“CSV”文件,并在它做一些功能,但我一直面临这个问题:
writer = csv.writer(csv_file)属性错误:模块“csv”没有属性“writer”
这是我的代码:

import csv

with open('menu.csv', mode='w') as csv_file:
        fieldnames = ['item', 'price', 'category', 'rating', 'total', 'popular dish']
        writer = csv.writer(csv_file)
       writer.writerow('n')
        writer.writerows('s')
print(csv_file)
t1qtbnec

t1qtbnec1#

问题是您的脚本正在导入自己。

$ cat csv.py
import csv

with open('menu.csv', mode='w') as csv_file:
        fieldnames = ['item', 'price', 'category', 'rating',
                      'total', 'popular dish']
        writer = csv.writer(csv_file)
        writer.writerow('n')
        writer.writerows('s')
print(csv_file)

$ python3 csv.py 
Traceback (most recent call last):
  File "/tmp/csv.py", line 1, in <module>
    import csv
  File "/tmp/csv.py", line 5, in <module>
    writer = csv.writer(csv_file)
AttributeError: partially initialized module 'csv' has no attribute 'writer' 
(most likely due to a circular import)

问题是你的脚本名为“csv”,它试图导入“csv”。这就是错误消息所讨论的“循环导入”。
(Your目的是导入Python的“csv”模块.但这并不是你真正在做的事情)。
解决方案:重命名脚本:

$ mv csv.py foo.py
$ python3 foo.py
<_io.TextIOWrapper name='menu.csv' mode='w' encoding='UTF-8'>

输出可能不是您想要的,但这是另一个问题。
(打印输出文件不会显示文件的内容。因为它是一个输出文件。如果你想看到你写的文件,cat它.在Python之外,或者编写一些代码,在编写并关闭它之后将其作为输入文件打开。)
我试图删除任何参考,但没有工作
我使用了weakref()函数,但没有工作
这个问题与引用无关。

相关问题