根据分隔符拆分字符串

split a string on the basis of delimeters

我有一个包含 5 列的 csv 文件,其中我只需要两列,它们由竖线 (|) 分隔符分隔。以下是其中的一些:

SERIAL_NO|N|1385,45,871,104|1|?
CUST_ID|N|1704,211,552,71|1|?
PROD_TYPE|A|367,286,1167,74|1|?
BRANCH_CODE|N|1892,429,254,74|1|?
BRANCH_NAME|A|682,412,774,72|1|?
DATE|N|2022,581,241,82-1863,581,137,75-1697,581,153,85|1|?

我只想要列表中的第 0 个和第 2 个索引数据,这样我就可以根据给定的坐标将该数据提供给图像我将在图像中进行裁剪并保存这些图像,文件名与第0个索引数据。

为了更清楚这里是我想要做的我有一个坐标在 csv 文件中的图像(比如这个 1385,45,871,104)并且在根据给定坐标裁剪之后我想保存文件该行的第 0 个索引数据的名称是(SERIAL_NO)。我必须对所有行执行此操作,并且某些行具有多个坐标,除以 - 符号。

f = open("file.csv", "r")
coordinates = []
for line in f:
    splitted = line.split("|")
    for coor in splitted[2].split("-"):
        coordinates.append((splitted[0], coor)
f.close()

这应该以元组列表的形式为您提供坐标。

您可以获得 csv 模块以管道字符为您分割文件:

import csv
f = open("file.csv", "r")
reader = csv.reader(f, delimiter='|')
for row in reader:
    print (row[0],":",row[2].split("-"))

输出是

SERIAL_NO : ['1385,45,871,104']
CUST_ID : ['1704,211,552,71']
PROD_TYPE : ['367,286,1167,74']
BRANCH_CODE : ['1892,429,254,74']
BRANCH_NAME : ['682,412,774,72']
DATE : ['2022,581,241,82', '1863,581,137,75', '1697,581,153,85']