用双引号写出文本 - Linux上的Python

时间:2017-01-11 16:02:59

标签: python linux string text

我试图将查询的文本输出带到SSD(拉动日志页面,类似于拉动SMART数据。然后我尝试从日志文件中写出此文本数据I定期更新。

当某些驱动器的日志数据具有双引号作为空白字段的占位符时,会出现问题。以下是输入的片段:

VER 0x10200
VID 0x15b7
BoardRev 0x0
BootLoadRev""

当这个被写出(附加)到我自己的日志文件中时,文本会被多个空字符替换,然后当我尝试打开所有文本编辑时告诉我它已损坏。

""我的Linux系统上的字符被这样的东西取代:

BootLoadRev" \ 00 \ 00 \ 00 \ 00"

\ 00字符的某些字段甚至更长。如果""事情没有,事情写得没问题。

代码与此类似:

f=open(fileName, 'w')
test_bench.send_command('get_log_page')
identify_data = test_bench.get_data_in()
f.write(identify_data)
f.close()

有没有办法将这个文本发送到没有这些空值的文件导致问题?

1 个答案:

答案 0 :(得分:1)

假设这是Python 2(并且您的内容因此是Python 3将其称为字节串),并且您的预期数据格式是原始ASCII,那么简单的解决方案就是在您编写之前从内容中删除NUL到磁盘:

f.write(identify_data.replace('\0', ''))