【发布时间】:2016-12-09 06:42:49
【问题描述】:
我正在尝试创建一个包含 UUID 编号的 .csv 文件。我看到了如何在 python 中制作单个 UUID 数字,但无法获得正确的语法来制作 50 个数字并将它们保存到 .csv 文件中。我用谷歌搜索并找到了许多创建 .csv 文件的方法以及如何使用 For 循环,但似乎没有一个与这个特定的应用程序有关。感谢您的帮助。
【问题讨论】:
我正在尝试创建一个包含 UUID 编号的 .csv 文件。我看到了如何在 python 中制作单个 UUID 数字,但无法获得正确的语法来制作 50 个数字并将它们保存到 .csv 文件中。我用谷歌搜索并找到了许多创建 .csv 文件的方法以及如何使用 For 循环,但似乎没有一个与这个特定的应用程序有关。感谢您的帮助。
【问题讨论】:
只需将a csv writer 与an 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 不是来自 Python 标准库,它是我正在创建的一个实例。我已修复代码以不引发 bytes-like object is required 错误 (I accidentally opened the file as wb instead of w, where b stands for bytemode)。
csv 基本上是一个文本文件,因为你的只有一列,所以你不需要分隔符:
import uuid
with open('uuids.csv', 'w') as f:
f.writelines(str(uuid.uuid1()) + "\n" for i in range(50))
【讨论】:
writelines。它需要一个字符串列表,每个字符串都是一行。正确的用法是f.writelines([str(uuid.uuid1()) for i in range(50)])。此外,您的概念不会扩展到数百万或数十亿行,因为所有内容在写入磁盘之前都会保存到 RAM。