gpt4 book ai didi

Python 3 编码时不分割字符串

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:11 25 4
gpt4 key购买 nike

这是片段:

for eachLine in content.splitlines(True):
entity = str(eachLine.encode("utf-8"))[1:]
splitResa = entity.split('\t')
print(entity)
print(splitResa)

基本上我得到了这个结果:

'<!ENTITY DOCUMENT_STATUS\t\t\t\t\t"draft">\n'
['\'<!ENTITY DOCUMENT_STATUS\\t\\t\\t\\t\\t"draft">\\n\'']

但是在 IDLE 中一切正常:

>>> '<!ENTITY DOCUMENT_STATUS\t\t\t\t\t"draft">\n'.split('\t')
['<!ENTITY DOCUMENT_STATUS', '', '', '', '', '"draft">\n']

不明白为什么。我也在这里尝试过答案: splitting a string based on tab in the file但它仍然执行相同的行为。这里有什么问题吗?

最佳答案

看起来 eachLine 是一个原始字符串。

>>> r'<!ENTITY DOCUMENT_STATUS\t\t\t\t\t"draft">\n'.split('\t')
['<!ENTITY DOCUMENT_STATUS\\t\\t\\t\\t\\t"draft">\\n']

因此,您应该使用原始 \t (r'\t') 拆分它,如下所示

>>> r'<!ENTITY DOCUMENT_STATUS\t\t\t\t\t"draft">\n'.split(r'\t')
['<!ENTITY DOCUMENT_STATUS', '', '', '', '', '"draft">\\n']

或使用正确转义的 \t ('\\t'),如下所示

>>> r'<!ENTITY DOCUMENT_STATUS\t\t\t\t\t"draft">\n'.split('\\t')
['<!ENTITY DOCUMENT_STATUS', '', '', '', '', '"draft">\\n']

关于Python 3 编码时不分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com