根据定界符分割字符串

时间:2019-04-30 12:13:04

标签: python string crop

我有一个csv文件,该文件由5列组成,我只需要两列就可以用pipe(|)分隔符分隔。以下是其中的几个:

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)。我必须对所有行执行此操作,并且某些行具有多个坐标,这些坐标除以-符号。

2 个答案:

答案 0 :(得分:0)

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()

这应该为您提供座堂列表。

答案 1 :(得分:0)

您可以使用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']
相关问题