[英]How to strip leading whitespaces from an offset of a string array in Python?
[英]How to strip the leading Unciode characters from a file?
我正在处理数千个xml文件,并且有一些问题文件。
在每种情况下,它们都包含前导Unicode字符,例如C3 AF C2 BB C2 BF
和EF BB BF
等。
在所有情况下,文件仅包含ASCII字符(在标头字节之后),因此不会存在数据丢失将它们转换为ASCII的风险。
我不允许更改磁盘上文件的内容,只能将它们用作脚本的输入。
简单地说,我很乐意将此类文件转换为ASCII(解析所有输入文件,进行一些更改并将其写入输出目录,然后由第二个脚本处理它们)。
我该如何编码? 当我尝试:
with open(filePath, "rb") as file:
contentOfFile = file.read()
unicodeData = contentOfFile.decode("utf-8")
asciiData = unicodeData.encode("ascii", "ignore")
with open(filePath, 'wt') as file:
file.write(asciiData)
我得到一个错误, must be str, not bytes
。
我也试过
asciiData = unicodedata.normalize('NFKD', unicodeData).encode('ASCII', 'ignore')
结果相同。 我该如何纠正?
还是有其他方法可以隐藏文件?
...
asciiData = unicodeData.encode("ascii", "ignore")
asciiData
是字节对象,因为它已编码。 打开文件时,您需要使用二进制模式而不是文本模式:
with open(filePath, 'wb') as file: # <---
file.write(asciiData)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.