栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python csv模块覆盖csv文件中的特定列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python csv模块覆盖csv文件中的特定列

每个

row
只是一个
list
。您可以就地对其进行修改,也可以使用要替换的值创建一个新列表:

row[0] = y # or row = [y] + row[1:], or ...

如果要将其写回文件,则需要使用

csv.writer
。例如:

os.rename('FakeAPData.csv', 'FakeAPData.csv.bak')csv_in = open('FakeAPData.csv.bak', 'rb')csv_out = open('FakeAPData.csv', 'wb')writer = csv.writer(csv_out)for row in csv.reader(csv_in):    date = datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S')    datet = unipre(datetime.datetime.strptime(row[0], '%Y-%m-%d %H:%M:%S'))    datett = tuple(int(v) for v in re.findall("[0-9]+", datet))    y = calendar.timegm(datett)    row[0] = y    writer.writerow(row)

当然,您还需要保存

close
文件,并清理所有重复和未使用的代码。在此过程中,我会将日期转换代码分解为一个函数。并使用使操作变得容易的功能,而不是使操作变得困难和脆弱的功能。

所以:

def transform_date(date):    return calendar.gmtime(datetime.strptime(date, '%Y-%m-%d %H:%M:%S').timetuple())def transform_row(row):    return [transform_date(row[0])] + row[1:]name = 'FakeAPData.csv'bakname = name + '.bak'os.rename(name, bakname)with open(bakname, 'rb') as in csv_in, open(name, 'wb') as csv_out:    writer = csv.writer(csv_out)    writer.writerows(transform_row(row) for row in csv.reader(csv_in))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号