使用Python在最后一列中获取一个字符串

时间:2014-02-14 12:12:23

标签: python regex csv

我需要从CSV文件中获取一个字符串,我知道我可以使用Python,但我一直在寻找几个小时,但仍然无法得到它。这是CSV看起来像:

DATE|CUST|PHONE|EMAIL|NAME|CLASS|QTY|AMOUNT|ID|TRX_ID|BOOKING CODE|PIN

01-02-2013 09:04:16|sdasd|43543|csdfd|Voucher Regular|REGULAR|1|2250000|G001T001|0062013000149|32143000341|MV1011302JSGUCFOM

01-02-2013 09:04:16|sdasd|43543|csdfd|Voucher Regular|REGULAR|2|1200000|G001T001|0062013000149|32143000341|MV4011302CBWDQYOU&MV4011302PVSEVAPJ

01-02-2013 11:01:13|ge|||Voucher Regular|REGULAR|1|600000|G001T001|20000027000005|32143000355|MV4011302UHKMJEEM

我想要的字符串是PIN列(最后一列);但在每列中,可以有多个PIN,由'&'分隔。

感谢您的帮助,一直在寻求解决这个问题。

3 个答案:

答案 0 :(得分:3)

拆分|并得到最后一个条目:

pin = line.split('|')[-1]

或更花哨:

import csv

with open('bookings.csv', 'rb') as csvfile:
    bookings = csv.reader(csvfile, delimiter='|')
    for values in bookings:
        print(values[-1])

答案 1 :(得分:1)

处理csv文件时,只需使用csv module

import csv
from itertools import chain

with open('path/to/your/file.csv', 'rb') as csvfile:
  tmp = (r['PIN'].split('&') for r in csv.DictReader(csvfile, delimiter='|'))
  pins = list(chain.from_iterable(tmp))

for pin in pins:
    print pin

答案 2 :(得分:0)

遍历每一行并使用以下内容:

'hello|world|and|noel'.split('|')[-1]

获取最后一个元素