Python 的 CSV 读取器和迭代

2024-01-08

我有一个 CSV 文件,如下所示:

"Company, Inc.",,,,,,,,,,,,10/30/09
A/R Summary Aged Analysis Report,,,,,,,,,,,,10:35:01
All Clients,,,,,,,,,,,,USER

Client Account,Customer Name,15-Jan,16 - 30,31 - 60,61 - 90,91 - 120,120 - Over,Total,Status,Credit Limit
1000001111,CLIENT A,0,0,"3,711.32",0,0,"18,629.64","22,340.96",COD,"20,000.00"
1000002222,CLIENT B,0,0,0,"3,591.27",0,0,"3,591.27",COD,0
1000003333,CLIENT C,536.78,0,0,0,0,"11,216.60","11,753.38",COD,0
1000004444,CLIENT D,0,514.94,"3,147.45",690,0,0,"4,352.39",COD,0

Grand Total,,"139,203,856.06","84,607,749.30","110,746,640.18","58,474,379.45","52,025,869.06","292,653,734.82","737,712,228.87",,,,

但我只想处理“客户帐户...”行之后和“总计...”之前的行,这是我现在使用的代码:

inputFile = csv.reader(open(filename), dialect='excel')
records = [line for line in inputFile if line and line[0].isdigit()]

通过发电机。您可以从简单的生成器过滤器函数构建各种复杂性。虽然比您的过滤器复杂得多,但它更具可扩展性,并且可以轻松处理真正复杂的电子表格。

def skip_blank( rdr ):
    for row in rdr:
        if len(row) == 0: continue
        if all(len(col)==0 for col in row): continue
        yield row

def after_heading( text, rdr ):
    i= iter(rdr)
    for row in i:
        if any( column == text for column in row ):
            break
    for row in i:
        yield row

def before_footing( text, rdr ):
    for row in rdr:
        if any( column == text for column in row ):
            break
        yield row

def between( start, end, rdr ):
    for row in before_footing( end, after_heading( start, rdr ) ):
        yield row

for row in between( 'Grand Total', 'Client Account', skip_blank( inputFile ) ):
    print row
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 的 CSV 读取器和迭代 的相关文章

随机推荐

  • 使用 React 和 Material UI 的全局样式

    我是 React 和 Material UI 的新手 但我必须编写一个具有漂亮样式的企业应用程序 我想为我的应用程序使用某种全局样式 以便稍后能够更改它 与react中的功能组件 也许我稍后会添加redux 使用 React 和 Mater
  • VBA 矩阵乘法 MMult

    我正在努力解决 运行时错误 1004 无法获取 WorksheetFunction 类的 MMult 属性 我使代码尽可能简单 但它仍然不起作用 如果有提示 我将不胜感激 Sub Matrix Computation3 Dim ws3 As
  • 使用类型转换运算符

    我有一个 Visual Studio 2008 C 应用程序 我需要从采用可变大小缓冲区的函数中获取信息 所以 我有一个类支持该类型std vector并实现一个转换运算符到我想要的类型 class CMibIpForwardTable p
  • 标识符“n”未定义,“对象”不包含这样的成员

    Visual Studio Code 1 17 0 生成错误Angular当我处理来自不在基类上的继承类型的成员并且基类在组件上声明时 模板 在下面的代码中 显然maxLength不存在于QuestionBase 但是我该怎么办呢 Angu
  • 无法在 webpack-dev-server 中查看请求日志

    我在用webpack dev server在本地充当 CDN 服务器来提供各种静态资源 如 css js html 等 一切运行正常 但出于调试目的 我无法看到 CDN 服务器收到的请求 webpack dev server一旦编译了静态资
  • 如何在 Rust 1.12 中检查 read_line 中的 EOF?

    考虑以下程序 如何检测 stdin 中的 EOF 并打破循环 use std io use std process fn main let mut sum 0 loop let mut number str String new match
  • 如何覆盖按钮点击角度的测试? (Stackblitz附后)

    我正在制作一个非常简单的应用程序 它有一个输入框和一个按钮 输入用于输入email 订阅button与事件处理程序 输入电子邮件并单击按钮将进行 api 调用 此方法有效 subscribeEmail this error if this
  • 如何在Spring中将文件夹的所有文件加载到资源列表中?

    我有一个文件夹 想要使用 Spring 和通配符将所有 txt 文件加载到列表中 通过注释我可以执行以下操作 Value classpath dir txt private Resource files 但是我怎样才能以编程方式使用 spr
  • RGB 与 HLS 之间的转换

    我正在使用 python 的 colorsys 库将 RGB 颜色值转换为 HLS 为了验证一下 我尝试转换回 RGB 并得到了不同的值 我可以理解由于精度问题而产生的微小差异 但这些值有很大不同 这是我的代码 import colorsy
  • django原始查询百分号问题

    我尝试在 Django 中进行原始 sql 查询like函数 但结果为空 我尝试mysql客户端工具这个查询并得到很多记录 如何解决这个问题 我的查询 SELECT s s id as pk FROM d status as s selec
  • 查询 google play 商店的应用程序版本?

    有没有一种方法可以在游戏商店中查询应用程序的版本 而无需用户凭据 我知道这个非官方 API http code google com p android market api http code google com p android m
  • iPhone SDK 中“ ”(空格)的转义序列是什么?

    在我的 iPhone 应用程序中 我有一个 ASCII 艺术 两个字符之间有很多空格 所以我需要添加空格的转义序列来代替每个空格 iPhone SDK 中的空格转义序列是什么 您可以使用不间断空格 http en wikipedia org
  • AWS CodeBuild buildspec.yml 递归获取所有文件和子文件夹

    我正在尝试使用 AWS CodeBuild 获取嵌套内的所有文件和子文件夹public文件夹并使用 CodePipeline 部署到 S3 存储桶 我能够将它们全部连接在一起 但很难配置buildspec yml文件以获得我想要的输出 我的
  • Rcpp 和 CULA:分段错误

    我从以下内容中提取了相关位GPU工具R 用于在我的 GPU 上运行 QR 分解的包Rcpp通过动态加载链接到的共享库库拉工具 航站楼内一切顺利R app在我的 Mac 上 结果符合R s qr 函数 但问题是退出时发生分段错误R app 使
  • 使用 Hibernate 注解映射枚举类型

    我的 Java 模型上有一个枚举类型 我想将其映射到数据库上的表 我正在使用 Hibernate Annotations 但我不知道该怎么做 由于我搜索的答案相当旧 我想知道哪种方式最好 提前致谢 除了这个之外你还需要其他东西吗 Enume
  • clusterExport、环境和变量范围

    我编写了一个函数 在其中定义变量并加载对象 这是一个简化版本 fn1 lt function x load data RData a vector named data source myFunctions R library raster
  • 为淘汰赛创建二叉树

    我正在尝试创建一个用于淘汰赛的二叉树 该树由带有左指针和右指针的 TNode 组成 这是我想出的代码 如下 然而 它在使用指针时遇到了困难CreateTree部分 一旦创建了一个足够大的空树 我需要将 Memo1 List 上的名称添加到树
  • 如何在不更改 Xcode 项目的情况下#ifdef 环境变量?

    我想检测 Xcode 设置之外的环境变量 我可以在运行时检查环境 如中指定的那样执行此操作检测 iOS 应用程序是否在调试器中运行 https stackoverflow com questions 4744826 detecting if
  • 如何正确重载 TypeScript 中的函数?

    谁能告诉我这里的类型有什么问题吗 我试图让自己清楚 TS 中的重载 但下面的问题让我真的很困惑 type myNumbers 1 2 3 type myStrings a b c interface ReturnValue tag a 1
  • Python 的 CSV 读取器和迭代

    我有一个 CSV 文件 如下所示 Company Inc 10 30 09 A R Summary Aged Analysis Report 10 35 01 All Clients USER Client Account Customer