首页 > 解决方案 > 使用正则表达式第一列在 Python 中读取和解析 CSV 文件

问题描述

我有一个 CSV 文件(日历),我想使用脚本在以下条件下读取和解析 5 列:

脚本的第一部分完成跳过标题。第二部分我认为需要正则表达式,但我只是不知道如何先删除 / 然后将 0101 从 2019 年之前移动到 2019 年之后,以便结果为 20190101

如果有人可以提供帮助,那就太好了!

def parse_calendar(infile, outfile):
    with open(outfile, 'w', newline='') as output:
        with open(infile, newline='') as input:
            reader = csv.reader(input, delimiter=',', quotechar='"')
            next(reader, None)  # skip the headers
            writer = csv.writer(output, delimiter=',', quotechar='"')
            for row in reader:   # process each row
                writer.writerow(row)

与初始文件相比,我希望输出如下所示:

2019 年 1 月 1 日元旦美国北卡罗来纳州

20190101 元旦 NC US

标签: pythoncsv

解决方案


谢谢大家的回复。

因此,使用此代码,我得到以下输出:

import csv

def parse_calendar(infile, outfile):
    with open(outfile, 'w', newline='') as output:
        with open(infile, newline='') as input:
            reader = csv.reader(input, delimiter=',', quotechar='"')
            next(reader, None)  # skip the headers
            writer = csv.writer(output, delimiter=',', quotechar='"')
            for row in reader: # process each row
                replaced = row[0].replace('/','')  
                row[0] = replaced
                writer.writerow(row)

01012018,元旦,北卡罗来纳州,美国

01012018,元旦,N,C,CA

01152018,Martin L. King Day,N,C,US

鉴于类型是字符串,我需要向脚本添加什么代码才能使格式从 01012018 到 20180101 现在不同?对于每条线然后偏离路线。

非常感谢


推荐阅读