当前位置: 首页 > 知识库问答 >
问题:

使用Python CSV和globb查找匹配的字符串并打印行

有骏祥
2023-03-14

我有数百个CSV文件,我正在尝试编写一个Python脚本,该脚本将解析所有CSV文件并打印出具有匹配字符串的行。如果我们可以使用一个字符串(而不是字符串列表)来实现这一点,我会很高兴。使用Python 2.7.5。到目前为止,我已经发现:

Python中的csv模块将在特定列(左侧第八列)中打印具有匹配字符串的行:

import csv
reader = csv.reader(open('2015-08-25.csv'))
for row in reader:
    col8 = str(row[8])
    if col8 == '36862210':
        print row  

因此,上述方法适用于其中一种情况。csv文件。现在我需要解析数百个。带有glob的csv文件。glob模块将用以下代码打印出所有文件名:

import glob
for name in glob.glob('20??-??-??.csv'):
    print name

我尝试将两者合并到一个脚本中,但错误消息如下:

文件"test7.py",第6行,在读取器=csv.reader(打开(csvfile))TypeError:强制到Unicode:需要字符串或缓冲区,找到列表

import csv
import glob

csvfiles = glob.glob('20??-??-??.csv')
for filename in csvfiles:
    reader = csv.reader(open(csvfiles))
    for row in reader:
        col8 = str(row[8])
        if col8 == '36862210':
            print row

共有1个答案

徐昆
2023-03-14

您正在尝试打开一个列表-csvfiles是您正在迭代的列表。

请改用此选项,因为open()需要一个文件名:

reader = csv.reader(open(filename))
 类似资料:
  • 问题内容: 我试图从找到字符串中的,如果有串,我需要用相应的值来代替它 我有如下 我可以使用任何(左侧)字符串,我需要将其替换为右侧字符串值 以下是几个示例错误消息 下面是我的方法转换错误消息 以下是预期的输出:对于errorMessage1,它工作正常 但是对于errorMessage2它不起作用。它不会替换为 有没有办法找到多个字符串的出现并将其替换为其对应的值? 例如:查找并替换为 也想知道

  • 问题内容: 我想同时执行完全的单词匹配和部分的单词/子字符串匹配。例如,如果我搜索“男士剃须刀”,那么我应该能够在结果中找到“男士剃须刀”。但是,如果我搜索“剃须刀”,那么在结果中我也应该能够找到“剃须刀”。我使用以下设置和映射: 索引设置: 对应: 插入记录: 查询: 1.按完全匹配的词组进行搜索- >“男式” 上面的查询在返回结果中返回“男士剃须刀”。 2.按部分单词匹配搜索- >“ en’s

  • 本文向大家介绍python使用正则表达式匹配字符串开头并打印示例,包括了python使用正则表达式匹配字符串开头并打印示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python使用正则表达式匹配字符串开头并打印的方法。分享给大家供大家参考,具体如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://too

  • 问题内容: 我想在同一行上打印列表中的项目。我尝试过的代码: 输出= 我想输出到= 此代码仍在新行上打印我的模具的ASCII艺术表示。我想将其打印在同一行上,以节省空间并在一个屏幕上显示每个玩家的状态。 问题答案: 由于的元素是多行字符串,因此要比这更难。 首先,从每个字符串的开头删除换行符,并确保ASCII图形中的所有行都具有相同的长度。 然后尝试以下 如果您将描述的更改应用于ASCII艺术作品

  • #include <stdio.h> #include <wchar.h> int main(void) { char str1[] = "abcd"; wchar_t str2[] = L"abcd"; return 0; } 技巧 用gdb调试程序时,可以使用“x/s”命令打印ASCII字符串。以上面程序为例: Temporary brea

  • 问题内容: 要在Python中打印字符串和数字,除了做类似的事情外,还有其他方法: 问题答案: 在 不带括号的情况下 使用 print函数 可用于旧版本的Python,但 Python3不再支持该功能 ,因此您必须将参数放在括号内。但是,有一些变通方法,如对该问题的答案所述。由于对Python2的支持已于2020年1月1日结束,因此 答案已修改为与Python3兼容 。 您可以执行以下任一操作(并