我只是学习,我被要求写一个csv文件,我一直得到一个错误,但我不知道为什么?

4sup72z8  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(112)
import csv

with open('myaddresses.csv','w','newline')as A:
   thewriter = cav.writer(A)
thewriter.writerow({'11 Wall Street, New York, NY, 10005'})
thewriter.writerow({'350 Fifth Avenue, New York, NY, 10118'})
thewriter.writerow({'1600 Pennsylvania Avenue NW, Washington DC, 20500'})
thewriter.writerow({'4059 Mt Lee Dr.,Hollywood, CA, 90068'})
thewriter.writerow({'Statue of Liberty, Liberty Island, New York, NY, 10004'})
thewriter.writerow({'1313 Mockingbird Lane, Albany, NY, 12084'})
thewriter.writerow({'0001 Cemetery Lane, Westfield, NJ, 07091'})
thewriter.writerow({'3109 Grant Ave, Philadelphia , Pa, 19114'})
thewriter.writerow({'532 N. 7th Street, Philadelphia, PA, 19123'})
thewriter.writerow({'317 Chestnut Street, Philadelphia, PA, 19106'})

TypeError:“str”对象不能解释为整数
任何帮助都是必要的
我只需要它来打印我输入的信息。

sd2nnvve

sd2nnvve1#

open不接受字符串参数'newline',它可以接受关键字参数newline =。如文档所述:newline确定如何分析流中的换行符。它可以是None、“”、“\n”、“\r”和“\r\n”。

42fyovps

42fyovps2#

问题在于如何调用open()函数。

# This call will result in TypeError
with open('myaddresses.csv','w','newline')as A:
   # do something with file A

参数'newline'的赋值不正确。如果我们看一下函数定义:
打开(文件,模式='r',缓冲=- 1,编码=无,错误=无,换行符=无,closefd=True,打开程序=无)
当您只使用位置参数调用open()函数时,您试图将值'newline'赋给buffering,而buffering只接受整数。
在您的案例中,呼叫open()的正确方式是使用newline的保留字参数,也就是:

with open('myaddresses.csv', 'w', newline="\n") as A:
    # do something with file A

newline参数只能是下列其中一项:
无、“”、“\n”、“\r”和“\r\n”。
newline参数的默认值为None

相关问题