python学习总结(二)csv newline uuid

1 csv 文件读取和写入

class Test(object):
    # 读取 两种方法
    def read(self):
        with(open("ccc.csv", "r")) as f:
            reader = csv.reader(f)
            next(reader)  # 是为了从数据开始读 第一行是key 值
            for x in reader:
                print(x)

    def read2(self):
        with open("ccc.csv", 'r') as f:
            reader = csv.DictReader(f)  # 读取成一个字典的 形式

    header = ["name", "age", "height"]
    rows = [
        ("张珊", 12, 160),
        ("李四", 12, 160),
        ("王五", 12, 160)
    ]

    def write(self):
        with open('CCC.csv', 'w', encoding='utf-8', newline='') as f:
            writer = csv.writer(f)
            writer.writerow(self.header)
            writer.writerows(self.rows)
    row_dict=[
        {'name':"张珊",'age':12,'height':170},
        {'name':"张珊",'age':12,'height':170},
        {'name':"张珊",'age':12,'height':170},
    ]
    def write2(self):
        with open("csc.csv",'w',encoding="utf-8",newline='') as f:
            write=csv.DictWriter(f,self.header)
            write.writeheader()
            write.writerows(self.row_dict)
if __name__ == '__main__':
    test=Test()
    test.write2()

总结
1 写入的时候 会无故多出一行空行 那是因为open的时候 会自动增加一个\n ,在open的时候 newline="" 就可以了
2 写入的时候 使用字典写入在csv.DicWriter(f,self.header) 传入dict的key 值列表
3 写入的时候 记得加write.writeheader() 不会自动写入表头的 使用该方法才会写入

二 使用uuid 生产唯一ID
注意 有的方法时 四个方法 没有uuid2()
uuid.uuid1(),基于时间戳和MAC地址
uuid,uuid3(uuid.NAMESPACE_DNS,name),基于名字的MD5散列值,可以保证同一命名空间中不同名字的唯一性和不同命名空间的唯一性, 但同一命名空间的同一名字生成的UUID相同.
uuid.uuid4(),随机生成,很小的概率 重复
uuid.uuid5(uuid.NAMESPACE_DNS,name) 和uuid3类似 基于名字的SHA-1散列值

import uuid

uid1 =uuid.uuid1()
name="space"
namespace=uuid.NAMESPACE_DNS
uid3=uuid.uuid3(namespace,name)
uid4 =uuid.uuid4()
uid5=uuid.uuid5(namespace,name)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值