当前位置: 首页 > 面试题库 >

Python:在csv.DictReader中跳过标有#的注释行

裴英锐
2023-03-14
问题内容

用csv.DictReader处理CSV文件很棒-
但是我有带注释行的CSV文件(在行的开头用哈希表示),例如:

#步长= 1.61853
val0,val1,val2,杂交,温度,smattr
0.206895,0.797923,0.202077,0.631199,0.368801,0.311052,0.688948,0.597237,0.402763
-169.32,1,1.61853,2.04069e-92,1,0.000906546,0.999093,0.241356,0.758644,0.202382
#改编完成

csv模块不包含任何跳过此类行的方法。

我可以轻松地做些骇人听闻的事情,但是我想有一种将csv.DicReader包装在其他迭代器对象周围的好方法,该对象会进行预处理以丢弃行。


问题答案:

实际上,这与filter

import csv
fp = open('samples.csv')
rdr = csv.DictReader(filter(lambda row: row[0]!='#', fp))
for row in rdr:
    print(row)
fp.close()


 类似资料:
  • 问题内容: 使用DictReader时,如何跳过CSV中的一行记录? 码: 错误: 问题答案: 您改为使用。 来源:csv.DictReader文档

  • 问题内容: 我想从文件中推断出字段名称。文档说: “如果省略fieldnames参数,则csvfile第一行中的值将用作字段名。” ,但在我的情况下,第一行包含标题,第二行包含名称。 我无法按照Python 3.2的要求在csv.DictReader中跳过一行, 因为在初始化读取器时发生了字段名分配(否则我做错了)。 csvfile(从Excel 2010导出,原始源): 我的代码: 当前结果:

  • 问题内容: 我认为我误会了read_csv的意图。如果我有文件“ j”,例如 我如何pandas.read_csv这个文件,跳过任何’#’注释行?我在帮助行的注释中看到它不被支持,但是它指示应该返回一个空行。我看到一个错误 CParserError:标记数据时出错。C错误:第2行中应有1个字段,看到了3个 我目前在 在版本‘0.12.0-199-g4c8ad82’上: CParserError:标

  • 我想我误解了阅读的意图。如果我有一个像“j”这样的文件 我怎样才能看到熊猫。读取此文件,跳过任何“#”注释行?我在帮助中看到,不支持行的“注释”,但它表示应返回空行。我看到一个错误 数据标记化出错。C错误:预期第2行中的1个字段,锯3 我现在在 在版本“0.12”上。0-199-g4c8ad82': 数据标记化出错。C错误:预期第2行中的1个字段,锯3

  • 我正在尝试为一个POST RESTendpoint编写一个单元测试。我需要用mockito模拟一个在上面的endpoint使用的服务方法。使用模拟mvc触发endpoint。 我正在嘲弄endpoint中使用的userService.saveUser(user)并返回一个整数作为创建的userID。但模拟似乎总是返回0而不是7777(userId deifinated)。对于“verify”,它表