【问题标题】:Saving a list of UUID numbers to a .csv file in python将 UUID 编号列表保存到 python 中的 .csv 文件
【发布时间】:2016-12-09 06:42:49
【问题描述】:

我正在尝试创建一个包含 UUID 编号的 .csv 文件。我看到了如何在 python 中制作单个 UUID 数字,但无法获得正确的语法来制作 50 个数字并将它们保存到 .csv 文件中。我用谷歌搜索并找到了许多创建 .csv 文件的方法以及如何使用 For 循环,但似乎没有一个与这个特定的应用程序有关。感谢您的帮助。

【问题讨论】:

    标签: python csv for-loop uuid


    【解决方案1】:

    只需将a csv writeran uuid generator 结合起来

    import csv
    import uuid
    with open('uuids.csv', 'w') as csvfile:
        uuidwriter = csv.writer(csvfile)
        for i in range(50):
            uuidwriter.writerow([uuid.uuid1()])
    

    【讨论】:

    • 感谢您的快速回复。搜索时我从未找到 uuidwriter。我运行了这个并且确实得到了这个错误代码: Traceback(最近一次调用最后一次):文件“C:/Users/bmiller/AppData/Local/Programs/Python/Python35/UUID Numbers_2.py”,第 7 行,在 uuidwriter.writerow([uuid.uuid1()]) TypeError:需要一个类似字节的对象,而不是'str'。 ta
    • 您好 Nils,我不确定错误消息的含义。我想了解它的更正方法。再次感谢您抽出宝贵时间回答我的问题!
    • uuidwriter 不是来自 Python 标准库,它是我正在创建的一个实例。我已修复代码以不引发 bytes-like object is required 错误 (I accidentally opened the file as wb instead of w, where b stands for bytemode)。
    • 您好,尼尔斯,感谢您抽出宝贵时间回复。我现在确实看到了如何将 uuidwriter 定义为 writer 方法。此代码适用于 50 个数字。再次感谢!
    • 我复制了"short usage example" from the Python docs。但你是对的,在这种情况下越短越好。
    【解决方案2】:

    csv 基本上是一个文本文件,因为你的只有一列,所以你不需要分隔符:

    import uuid
    with open('uuids.csv', 'w') as f:
        f.writelines(str(uuid.uuid1()) + "\n" for i in range(50))
    

    【讨论】:

    • 感谢 Loïc,效果很好。我之前曾尝试将“for i in range”语句放在代码的开头,并让它像你拥有它或 Nils 拥有它一样运行。也许这是我之前的问题。再次感谢您的帮助!
    • 您没有正确使用writelines。它需要一个字符串列表,每个字符串都是一行。正确的用法是f.writelines([str(uuid.uuid1()) for i in range(50)])。此外,您的概念不会扩展到数百万或数十亿行,因为所有内容在写入磁盘之前都会保存到 RAM。
    • @NilsWerner 你可能想读这个:python.org/dev/peps/pep-0289
    • 我知道生成器是什么,我只是将您的代码误解为字符串的串联。
    猜你喜欢
    • 2021-11-28
    • 1970-01-01
    • 2021-07-04
    • 2018-12-20
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多