python将十六进制数字写入cs

2024-09-27 09:30:46 发布

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

我有一条下面的绳子:

>>> line = '\x00\t\x007\x00\t\x00C\x00a\x00r\x00d\x00i\x00o\x00 \x00M\x00e\x00t\x00a\x00b\x00o\x00l\x00i\x00c\x00 \x00C\x00a\x00r\x00e\x00\t\x00\t\x00\t\x00\t\x00 \x001\x002\x00,\x007\x008\x008\x00,\x005\x002\x008\x00.\x000\x004\x00\r\x00\n'

当我在python终端中输入变量line时,它显示以下内容:

^{pr2}$

打印时,显示以下内容:

>>> print line
        7    Cardio Metabolic Care               12,788,528.04

在变量line中,每个单词都用\t隔开,我想把它保存到一个csv文件中。所以我尝试使用以下代码:

import csv
with open('test.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')
    spamwriter.writerow(line.split('\t'))

当我查看test.csv文件时,我只得到以下内容

,,,,,,

有没有什么可以把单词放到csv文件中。请帮忙。在


Tags: 文件csvtestline单词x00x00ax00i
1条回答
网友
1楼 · 发布于 2024-09-27 09:30:46

您的输入文本没有损坏,它被编码为UTF-16(在本例中是Big-Endian)。它本身就是CSV,只是用tab作为分隔符。在

你必须把它解码成一个字符串,然后你才能正常使用它。在

理想情况下,当您从源代码读取时,您声明了正确的字节编码。例如,当您打开一个文件时,您可以声明该文件使用的编码,以便文件读取器为您解码内容。在

如果您的字节串来自一个无法在读取时声明编码的源,则可以手动解码:

line = '\x00\t\x007\x00\t\x00C\x00a\x00r\x00d\x00i\x00o\x00 \x00M\x00e\x00t\x00a\x00b\x00o\x00l\x00i\x00c\x00 \x00C\x00a\x00r\x00e\x00\t\x00\t\x00\t\x00\t\x00 \x001\x002\x00,\x007\x008\x008\x00,\x005\x002\x008\x00.\x000\x004\x00\r\x00\n'
decoded = line.decode('utf_16_be')

print decoded
#   7   Cardio Metabolic Care                12,788,528.04

但既然我认为你实际上是从一个文件中读到的:

^{pr2}$

相关问题 更多 >

    热门问题