只是一个问题,我试图将选定的行从.csv文件写入新的.csv文件,但出现了一个错误。在
在测试.csv我试图读取的文件如下(两列):
2013-9 1
2013-10 2
2013-11 3
2013-12 4
2014-1 5
2014-2 6
2014-3 7
2014-4 8
2014-5 9
因为我只想要2014年,所以我的代码是:
^{pr2}$
但是,错误是:
AttributeError:“str”对象没有属性“has \u key”
不知道这个程序的正确方法,请帮助我谁是一个新的python用户
谢谢
Tags:
使用string.find或正则表达式在字符串中查找子字符串。在
所以不是
您可以:
^{pr2}$既然您无论如何都在使用csv模块,为什么不在读取时写入该文件:
可以通过将}来“修复”这个错误,但更重要的是,程序当前的编写方式,您将跳过从2014开始的第一行,并包含从2013开始的后续组的第一行。这真的是你想要的吗?在
has_key
改为{如果您只想保留从2014年开始的所有行,那么:
通过在读取时处理每一行,可以避免在列表
string_storage
中累积行,从而节省内存。这在处理大文件时非常重要。在另外,如果使用^{} 打开文件,则当执行流离开with语句时,该文件将自动关闭。在
注意,在Python2中,
dicts
有一个has_key
方法来检查dict是否有特定的键。在代码引发错误,因为
rad_line
是字符串而不是dict在Python3中,}更受欢迎。在
has_key
方法被移除。在Python2的现代版本中,比如Python2.7,您永远不需要使用has_key
,因为key in dict
比{相关问题 更多 >
编程相关推荐