gpt4 book ai didi

python - 使用 awk 实用程序实现的场景

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:42 25 4
gpt4 key购买 nike

我有一个包含行的文件(非常大),每一行都有一些字段,用逗号分隔。

从这个文件中,我必须提取几个字段并将它们转储到一个新行中。但这里的复杂之处在于,最后一个字段(列)本身包含一个逗号,但该特定字段由双引号“some,thing”标识(比方说)。

让我举个例子:-

the, quick, brown, fox, jumps, right, over, the little, "lazy,dog"

这个文件中有很多这样的行,用逗号分隔。

最后一列中可能有很多逗号,

现在我需要从中提取几列,我肯定要提取最后一列。

我想过使用 awk,但 awk 似乎对分隔符的分割没有限制。

python 有一个 split() 函数,我们可以在其中限制编号。拆分和字符串进入最后一个索引。['the', 'quick', 'brown', 'fox', 'jumps', 'right', 'over', 'the little', 'lazy,dog'].

此外,应从最终输出中删除双引号。

我尝试使用 awk,因为 awk 在我看来处理大文件的速度更快。但是是否有可能实现这种事情,或者我需要使用 pythonic 循环和拆分方式,它似乎有点慢。

注意:1)没有。列数是固定的。

请提出建议。

最佳答案

这不会让您远离 Python,但这似乎是一个 csv情况下,尤其是当您提到要删除最后一项周围的引号时。

测试.csv:

ay,bee,cee,dee,"ee,eff"
foo,bar,"baz,quux"

测试.py:

#!/usr/bin/env python

import csv

fp = open('test.csv', 'r')
for row in csv.reader(fp):
print row
fp.close()

输出:

['ay', 'bee', 'cee', 'dee', 'ee,eff']
['foo', 'bar', 'baz,quux']

关于python - 使用 awk 实用程序实现的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10213313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com