I file.readline()创建一些注册表文件,以便筛选出一些子字符串。我正在使用shutil.copyfile()对其进行复制(只是为了保留原件),并通过foo()进行处理,但没有看到任何内容被过滤掉。试过调试,行的内容非常二进制:
˙ţW\x00i\x00n\x00d\x00o\x00w\x00s\x00\x00R\x00e\x00g\x00i\x00s\x00t\x00R\x00y\x00\x00e\x00d\x00i\x00t\x00o\x00R\x00\x00V\x00e\x00R\x00s\x00i\x00o\x00n\x00\x00\x005\x00
这是相当明显的,但没有意识到这一点(记事本++整洁的文本表示)。我的问题是:如何过滤我的字符串? 我看到两个选项,它们是reg->;txt->;reg方法(我所说的标题)或将这些字符串转换为字节,然后与内容进行比较
当我手工创建文件(复制并粘贴输入文件的内容)并给它们.txt文件时,一切都很好,但我希望它能自动完成
inputfile = "filename_in.reg"
outputfile = "filename_out.reg"
copyfile(inputfile, output file)
with open(outputfile, 'r+') as fd:
contents = fd.readlines()
for d in data:
foo(fd, d, contents)
Reg文件通常是UTF-16(在MS文档中通常称为“Unicode”)。看起来您的调试将数据视为8位字符(因此16位字符的高阶字节有很多
\x00
)。可以说服Notepad++显示UTF-16修复方法是告诉Python您正在阅读的文本是UTF-16格式:
相关问题 更多 >
编程相关推荐