我正在使用Python 3.6.0编写脚本,将输出从米转换为xlsx文件。在输入文件的末尾是一个→符号,表示文件的结尾。
当我检测到→符号时,我想特别跳过当前行。 (我可以在转换之前将多个文件附加在一起,因此有多个→符号表示原始文件的末尾。)
Notepad ++将格式检测为 UTF-8 ANSI,但我无法在Python代码中获取if语句来检测箭头。 →也清楚地显示在普通的旧记事本中。
我最近的迭代是这次尝试:
elif '\u+2192' in line:
未能检测到右箭头。以这种方式尝试同样的事情:
elif '→' in line:
如何检测这一个角色?
编辑:重要的是,我读的文件是.log文件。
编辑:更多代码/数据以帮助排除故障。
以下是我的日志文件末尾的代码段:
TIM= 15:24:47
TODAY -0.0687869 m3
→
***注意:当我从记事本中复制并粘贴文本时,它不会粘贴箭头。
以下是我如何阅读文件的行:
with open(datafile, 'r') as df:
for line in df:
答案 0 :(得分:2)
'\u2192'
而不是'\u+2192'
。还要记得指定正确的编码。
您还可以使用\x
,\U
或\N
,例如'\N{RIGHTWARDS ARROW}'
。
根据PEP8:
在标准库中,非默认编码应仅用于 测试目的或当评论或文档字符串需要提及时 包含非ASCII字符的作者姓名;否则,使用\ x, \ u,\ U或\ N转义是包含非ASCII数据的首选方式 在字符串文字中。
答案 1 :(得分:1)
右箭头实际上是一个控件-Z,如Code Page 437所示。出于历史原因,Control-Z被许多Windows程序接受为文本文件的文件结束标记。如果你寻找角色\x1a
,你会找到它。
如果在文本模式下打开文件,它应该自动删除该字符。