python csv库

python csv库

python csv库

水一水又是一篇,乐

读取

import csv  
  
# 打开 CSV 文件  
with open('example.csv', mode='r', newline='') as file:  
    csv_reader = csv.reader(file)  
      
    # 读取文件头(可选)  
    headers = next(csv_reader)  
    print(f"Headers: {headers}")  
      
    # 读取每一行数据  
    for row in csv_reader:  
        print(row)

写入

import csv  
  
# 要写入的数据  
data = [  
    ['Name', 'Age', 'City'],  
    ['Alice', 30, 'New York'],  
    ['Bob', 25, 'Los Angeles'],  
    ['Charlie', 35, 'Chicago']  
]  
  
# 打开 CSV 文件  
with open('output.csv', mode='w', newline='') as file:  
    csv_writer = csv.writer(file)  
      
    # 写入数据  
    csv_writer.writerows(data)

读取csv为字典

import csv  
  
# 打开 CSV 文件  
with open('example.csv', mode='r', newline='') as file:  
    csv_reader = csv.DictReader(file)  
      
    # 读取每一行数据  
    for row in csv_reader:  
        print(row)

写入字典到csv

import csv  
  
# 要写入的数据  
data = [  
    {'Name': 'Alice', 'Age': 30, 'City': 'New York'},  
    {'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'},  
    {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}  
]  
  
# 获取字典的键作为表头  
fieldnames = data[0].keys()  
  
# 打开 CSV 文件  
with open('output.csv', mode='w', newline='') as file:  
    csv_writer = csv.DictWriter(file, fieldnames=fieldnames)  
      
    # 写入表头  
    csv_writer.writeheader()  
      
    # 写入数据  
    csv_writer.writerows(data)

处理带有特定分隔符的 CSV 文件

​ 默认情况下,CSV 文件使用逗号作为分隔符,但你可以通过 delimiter 参数来指定其他分隔符,例如制表符(\t)。

import csv  
  
# 读取使用制表符分隔的 CSV 文件  
with open('tab_separated.csv', mode='r', newline='') as file:  
    csv_reader = csv.reader(file, delimiter='\t')  
      
    # 读取每一行数据  
    for row in csv_reader:  
        print(row)

羊城杯2024 data-analy1
某位✌的wp

import csv
import re

p=[734, 735, 736, 737, 738, 739, 747, 748, 750, 751, 752, 757, 758, 759, 772,
778, 782, 783, 784, 787, 788, 795, 798, 730, 731, 732, 740, 745, 746, 755,
756, 766, 767, 771, 775, 776, 785, 786, 796, 733, 749, 753, 773, 774, 777,
780, 781, 789, 790, 791, 793, 799]

def cd(data,k):
    if not isinstance(data,str):
        return None
    elif data.isdigit() and 1<= int(data) and int(data)<=10002:
        return 0
    elif data in ['男','女']:
        return 4
    elif re.search("[\u4e00-\u9fa5]",data[0]): # 中文范围
        return 3
    elif data.isdigit() and len(data)==8: # 出生日期
        return 5
    elif len(data)==32: # 
        return 2
    elif len(data)==18 and data[6:14] in k: # 身份证与出生日期对应
        return 6
    elif len(data)==11 and data.isdigit() and int(data[0:3]) in p: # 手机号
        return 7
    else:
        return 1
rows=[]
with open('C:\\Users\\21609\\Downloads\\Compressed\\data-analy1的附件\\tempdir\\DS附件\\附件\\person_data.csv','r',encoding='utf-8') as fp:
    csv_reader=csv.reader(fp)
    for num,row in enumerate(csv_reader,start=1):
        if row== ['编号', '用户名', '密码', '姓名', '性别', '出生日期', '身份证号', '手机号码']:
            rows.append(row)
            continue
        new=[0]*8
        for i in row:
            new[cd(i,row)]=i
        rows.append(new)
with open('C:\\Users\\21609\\Downloads\\Compressed\\data-analy1的附件\\tempdir\\DS附件\\附件\\person_data_new.csv',mode='w',newline="",encoding='utf-8') as fp:
    #newline指定行尾,默认为\r\n
    csv_writer = csv.writer(fp)
    csv_writer.writerows(rows)

数据->从文本/csv->导入,可看到编码正确的文档

www.zeeklog.com  - python csv库

Read more

科普文:软件架构Linux系列之【大型金融集团对象存储需求分析和架构设计】

科普文:软件架构Linux系列之【大型金融集团对象存储需求分析和架构设计】

背景 企业不断前进发展内在需求,促使企业管理不断主动变革,应对挑战。同时,随着企业的发展,不断产生的非结构化数据(非结构化数据,包含对象存储和文件存储)规模也越来越庞大。降低成本和提升效率的KPI需求,促使管理层不断寻找新的解决方案,创造新的价值,应对新的挑战。 某企业从2013年开始追踪研究对象存储解决方案,对比了E厂商H厂商 D厂商等解决方案,同时也开展了基于OpenStack框架下的Swift对象存储研究,技术选型方案汇报到管理层后,从技术先进性,企业发展战略,社区热度,稳定性,成本,发展路线图等方面综合考量,评估,做出了使用Ceph作为对象存储开发技术原型的决定。 第二年底自研对象存储正式上线,对象存储在该企业的应用规模得到快速发展,如今已经达到了数十PB的规模,分布在数个不同地域的数据中心。在自己研发的对象存储占据主导地位同时,还有H厂商和I厂商的对象存储应用在不同场景中,其中I厂商的容量快速扩张,D厂商的对象存储在竞争中败下阵来,逐渐被淘汰。 对象存储发展的方案建议 企业发展的不同阶段,不同的战略目标,面临的IT管理的不同挑战,决定企业会选择哪种存储发展路线图,

By Ne0inhk
科普文:软件架构Linux系列之【早期2015年:中国民生银行灾备自动化切换调度平台实践与应用】 张永军 白东旭

科普文:软件架构Linux系列之【早期2015年:中国民生银行灾备自动化切换调度平台实践与应用】 张永军 白东旭

【摘要】中国民生银行在灾备建设的过程中,自行研发了一套灾备自动化调度指挥平台,用于日常灾备系统管理、切换演练、灾备切换、状态监控展现和应急启停。平台投入使用第一年就陆续接入几十套同城和异地灾备业务系统,得益于弹性灵活的流程编排特性,灾备系统接入时间大大缩短,后期变更维护的工作量大幅度减少;切合实际需求的桌面演练、应急启停、跳过和重做失败步骤等功能的实现,提高了系统可用性和用户满意度。灾备自动化调度指挥平台随着需求的更新、应用新架构的引进而不断演进,以支持我行所有场景下的自动化灾备切换操作。 【作者】中国民生银行信息科技部 张永军 白东旭 张永军,大连理工大学硕士研究生毕业,辗转于中科院计算所、HP,现任职于中国民生银行。多年工作在一线,运维老兵一枚,深谙运维压力与痛苦,致力于运维标准化、自动化、智能化。 白东旭,12年加入中国民生银行信息科技部系统管理中心,负责x86服务器硬件选型与运维和操作系统运维。精通Linux,Windows,Aix操作系统管理,熟悉虚拟化,容器技术,掌握Python,Go等语言和Ansible等自动化运维工具,15年以来参与民生银行灾备平台建设与运维。

By Ne0inhk
科普文:软件架构Linux系列之【分析篇:银行双活容灾建设方案】

科普文:软件架构Linux系列之【分析篇:银行双活容灾建设方案】

随着全球IT产业的飞速发展,金融行业的IT建设逐步成为主导金融企业业务发展的核心驱动力,基于金融行业IT系统建设的各种行业标准以及监管标准也相应提高。IT系统架构的扩展性、灵活性以及容灾能力就成为衡量企业IT建设很重要的标准。 本手册以某银行同城双数据中心建设过程为背景,详细从系统架构集成、资源云化、存储整合以及数据容灾等多个关键方面阐述其规划思路以及建设过程,旨在为同业在此类项目规划和建设过程中提供一些启示和帮助。分为分析篇、规划篇、实施篇;今天为您推送的为其中的“分析篇”。 1、双活数据中心的驱动力 近年来,随着互联网金融的快速发展,金融企业数据中心建设面临着新的挑战。 那就是对RTO和RPO的极限追求。从而也就诞生了近年来的热点话题——双活数据中心建设。 * 那么我们为什么要建设双活数据中心,它能给我们带来什么样的价值? * 什么样的数据中心架构叫做双活数据中心?如何认识适合自己业务模式的双活模式? * 建设阶段我们应该以什么样的原则来指导我们的建设工作? * 具体的建设思路以及具体的建设方案应该如何把握? 基于这些问题,本文将进行深入研究并展开探讨。 从科

By Ne0inhk
科普文:软件架构Linux系列之【规划篇:银行双活容灾建设方案】

科普文:软件架构Linux系列之【规划篇:银行双活容灾建设方案】

随着全球IT产业的飞速发展,金融行业的IT建设逐步成为主导金融企业业务发展的核心驱动力,基于金融行业IT系统建设的各种行业标准以及监管标准也相应提高。IT系统架构的扩展性、灵活性以及容灾能力就成为衡量企业IT建设很重要的标准。 本手册以某银行同城双数据中心建设过程为背景,详细从系统架构集成、资源云化、存储整合以及数据容灾等多个关键方面阐述其规划思路以及建设过程,旨在为同业在此类项目规划和建设过程中提供一些启示和帮助。 之前已经为大家推送过了“分析篇”(点击可阅读),今天继续为您推送的是“规划篇”。 1、应用层数据复制架构选型规划 1.1 应用事务日志回放技术 下图是Oracle数据库层面的数据复制技术(ADG)的架构原理图。 对于该架构原理图,本文从其实现的基本条件、数据复制原理、数据复制的模式以及数据复制的关键因素等几个方面来进行深度剖析。 Oracle Active Data Guard 1.1.1 前提条件 容灾站点之间需要有三层以太网连通,软件层面需要数据库的集群软件模块(Oracle Active Data Gurard)或者是db2 purscale ha

By Ne0inhk