python - 从 csv 文件中提取特定文本

标签 python python-3.x python-2.7

有人可以帮助我使用正确的脚本来提取以下内容:

  1. 提取 TTT 和 CHECK-Hello 之间以“D”单词开头的行的第一个文本实例,而不是第二个文本实例。
  2. 提取以“D”单词开头的行的 :19: 和 :19B: 之间的第一个文本实例

示例数据:

DHDR    .///20198782827372
D      17639937     0     50k     0     6           TTT1234 CHECK-Hello       ksdhujshds     :19: 782382689jds :19B:kahdhsd 
D      97837283     0     10k     0     6           TTT3456 CHECK-Hello       akjdhjdks     :19: 782382689jds :19B: kshdhd TTT3927837 CHECK-Hello       
M      98382388     0     20k     0     6           TTT3457 CHECK-Hello       ishadhsjh       :19: 782382689jds :19B

当前代码:

import glob
files = glob.glob('*.csv')
strings = []
for file in files:
  with open(file, "r", encoding='UTF-8') as fobj:
      text = fobj.read()
  import re
  a = re.compile(':19:(.*) :19B:')
  b=re.compile('TTT(.*)CHECK-Hello')
  z = a.findall(text)
  k=b.findall(text)
  if len(z)>0 and len(k)>0:

      strings.append(z + "," + k)

需要输出:

TTT_ID     ID
1234       782382689
3456       782382689

最佳答案

import glob
import re
import csv
files = glob.glob('testing.csv')
strings = []
a = re.compile(':19:(.*) :19B:')
b = re.compile('TTT(.*)CHECK-Hello')
for file in files:
    with open(file, "r", encoding='UTF-8') as fobj:
        csv_reader = csv.reader(fobj, delimiter=',')
        for row in csv_reader:
            if row[0].strip() == 'D':
                z = a.findall(row[1])
                k = b.findall(row[1])
                strings.append(k[0][:4].strip() + "," + z[0][:-3].strip())
print(strings)

关于python - 从 csv 文件中提取特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59136479/

相关文章:

python - 我看不懂这段教程代码?

python - 如何连接 Pandas 中包含列表(系列)的两列

python - PyQt:使用 QDataStream 保存 native QTreeWidgets

Python 错误 123 文件名、目录名或卷标语法不正确

python - 打开 excel 文件 python 所以它是可见的

python - 多重继承: missing required positional arguments that aren't actually required

python-2.7 - 从 Pandas 数据框中替换括号

python - pip 命令问题 - 命令 "python setup.py egg_info"失败,错误代码为 1 in/private/tmp/pip-build-7n_jim1n/mysql-python/

Python列表元素与转换为元组以进行字符串格式化

python - 具有相同区域设置的不同 datetime.strftime 输出