Python从字符串转换UUID

2024-10-04 01:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

一个包含所有UUI文件的文本:

A4AB4CD2-016B-411E-8BA1-0000C592BF17

当我尝试用python解析/打印文件时,大多数(但不是全部)都是这样的:

^{pr2}$

我要分析的每行有三个块,一个double,一个date和这个uuid。前两部分工作得很好。相关代码行为:

for line in fileLines:

    parts = line.split()
    # Parse first two chunks
    outputFile.write(""" WHERE tableID = '""" + uuid.UUID(parts[2]) + """'""")

这失败了,因为UUID的格式已经是12:40:54:547,但是我不知道这个UUID的子类型是什么,更不用说如何恰当地解析它了。我的目标只是准确地读入uuid,并在其周围添加一些额外的文本,以便可以将其作为SQL脚本运行。在

我运行的是python3.3.2

完整的输入行如下所示:

339.00  2013-06-18 12:40:54.457 A4AB4CD2-016B-411E-8BA1-0000C592BF17

Tags: 文件代码in文本fordateuuidline
2条回答

在字符串.拆分()是一个魔术,您不需要指定分隔符它将拆分。在

part = "339.00 2013-06-18 12:40:54.457 A4AB4CD2-016B-411E-8BA1-0000C592BF17"

part.split() ; part.split(" ") # does the same.

['339.00','2013-06-18','12:40:54.457','A4AB4CD2-016B-411E-8BA1-0000C592BF17']

['339.00','','',2013-06-18','12:40:54.457','A4AB4CD2-016B-411E-8BA1-0000C592BF17']

我的意见是使用str(部分分割()[-1])。在

关于UUID在转换为UUID时使用字符串转换,请参阅下面的参考。(或可能引起问题)

uuid.UUID("A4AB4CD2-016B-411E-8BA1-0000C592BF17")

UUID('a4ab4cd2-016b-411e-8ba1-0000c592bf17')

str(uuid.UUID("A4AB4CD2-016B-411E-8BA1-0000C592BF17"))

'a4ab4cd2-016b-411e-8ba1-0000c592bf17'

所以可以这样。在

对于文件行中的行:

parts = line.split()

# Parse first two chunks

outputFile.write(""" WHERE tableID = '""" + str(uuid.UUID(parts[-1])) + """'""")

如果UUID始终是行中的最后一个,请使用[-1]访问它

outputFile.write(""" WHERE tableID = '""" + uuid.UUID(parts[-1]) + """'""")

在这个例子中,你给零件[2]总是返回时间。如果行一致,则可以使用parts[2],但是如果UUID之前的数据不同,则始终选择分割后的最后一个元素

相关问题 更多 >