python3: 如何将“\u3000”(表意space)转换为“∀”?
python3: how to convert "\u3000" (ideographic space) to " "?
japanese.txt
あかさ
あいうえ お
いい
mycode.py
with open('japanese.txt', 'r', encoding='utf-8') as f:
old = [line.strip() for line in f.readlines()]
send_mail(from, to, title, message=f"hello {old}!")
然后我收到这样的邮件
hello ['あかさ', 'あいうえ\u3000お', 'いい']!
我要邮寄的是这个
hello ['あかさ', 'あいうえ お', 'いい']!
我怎样才能做到这一点?
list 的 __str__
方法在元素上使用 repr
,因此您会在邮件中看到 \u3000
。只需自己将列表转换为字符串即可:
In [28]: l = ['あかさ', 'あいうえ\u3000お', 'いい']
In [29]: print(', '.join(map(str, l)))
あかさ, あいうえ お, いい
如果您确定所有列表元素都是字符串,则可以省略 map(str, ...)
并只使用 ', '.join(l)
如果您想用标准 space 替换 \u3000
字符并对其他不太常见的 unicode 字符执行相同类型的操作,您可以使用 unicodedata 模块:
import unicodedata
jText = """あかさ
あいうえ お
いい"""
jList = [line.strip() for line in jText.split("\n")]
# ['あかさ', 'あいうえ\u3000お', 'いい']
normalizedList = [unicodedata.normalize('NFKC', line) for line in jList]
# ['あかさ', 'あいうえ お', 'いい']
japanese.txt
あかさ
あいうえ お
いい
mycode.py
with open('japanese.txt', 'r', encoding='utf-8') as f:
old = [line.strip() for line in f.readlines()]
send_mail(from, to, title, message=f"hello {old}!")
然后我收到这样的邮件
hello ['あかさ', 'あいうえ\u3000お', 'いい']!
我要邮寄的是这个
hello ['あかさ', 'あいうえ お', 'いい']!
我怎样才能做到这一点?
list 的 __str__
方法在元素上使用 repr
,因此您会在邮件中看到 \u3000
。只需自己将列表转换为字符串即可:
In [28]: l = ['あかさ', 'あいうえ\u3000お', 'いい']
In [29]: print(', '.join(map(str, l)))
あかさ, あいうえ お, いい
如果您确定所有列表元素都是字符串,则可以省略 map(str, ...)
并只使用 ', '.join(l)
如果您想用标准 space 替换 \u3000
字符并对其他不太常见的 unicode 字符执行相同类型的操作,您可以使用 unicodedata 模块:
import unicodedata
jText = """あかさ
あいうえ お
いい"""
jList = [line.strip() for line in jText.split("\n")]
# ['あかさ', 'あいうえ\u3000お', 'いい']
normalizedList = [unicodedata.normalize('NFKC', line) for line in jList]
# ['あかさ', 'あいうえ お', 'いい']