Python 不同行上的文本替换

Python 不同行上的文本替换,python,regex,awk,Python,Regex,Awk,我在一个文件中有多个条目,如下所述 "Item_1";"Item_1";"Products///Item///ABC///XYZ";"Item_1.jpg}";"";"Buy item <br><strong>Items</strong> <br><strong>Time</strong>";"";"";"";"";"";"Category: M[Item]";"";"";"Y";"N";"N";"None";""

我在一个文件中有多个条目,如下所述

 "Item_1";"Item_1";"Products///Item///ABC///XYZ";"Item_1.jpg}";"";"Buy item
 <br><strong>Items</strong>
 <br><strong>Time</strong>";"";"";"";"";"";"Category: M[Item]";"";"";"Y";"N";"N";"None";""

 "Item_2";....
我试图逐行读取整个文件,然后按“///”分割,存储条目数并存储第三条条目。但这会产生问题,因为我有多个换行符


有没有一种更简单的方法可以通过使用regex或其他什么来完成呢?

就像@Casimir建议的那样,您可以使用
csv
模块来解析您的文件(因为它会处理换行符),如下所示

import csv

with open(your_filename) as f:
    reader = csv.reader(f, delimeter=';', quotechar='"')

rows = list(reader)    
然后对解析后的结果执行您想要的操作(我不太确定您想要在这里实现什么,如果这不是您想要的,请进行注释)


使用csv模块:进一步说,@AFH需要记住为“Products//…”行找到的内容,并将其用于csv中的后续行,或者他们可能需要读取所有csv,处理它,如果他们真的需要更复杂的逻辑,就写出来。让我们等待他澄清这一点。另外,他可能不需要任何关于如何处理数据的帮助,只需要如何用换行符解析文件(这就是我对他的理解)。谢谢你的帮助!我能够根据需要使用csv模块更改参数。我现在只有一个障碍,我想用'''s'括住每一行元素,但我只是得到一行没有引号的分隔符。我尝试了cw=csv.writer(open(“File”,“wb”),delimiter=';',quotechar='“'))cw.writerow(row),我错在哪里了?你还有其他问题吗?如果不是,考虑接受答案,如果它帮助了你:
import csv

with open(your_filename) as f:
    reader = csv.reader(f, delimeter=';', quotechar='"')

rows = list(reader)    
for row in rows:
    if 'Products///Item///ABC///XY' in row:
        index = row.index('Products///Item///ABC///XY')
        row[index] = 'Products///ABC///XYZ'
        continue # If we replaced the first thing, skip to next row
    elif 'Category: M[Item]' in row:
        index = row.index('Category: M[Item]')
        row[index] = 'Category: M[ABC]'