Python中文
首页
教程
问答
标签
搜索
登录
注册
使用Python搜索Unicode文件
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<h2>设置</h2> <p>我正在编写一个脚本来处理和注释来自visualstudio的构建日志。构建日志是HTML,据我所知,是Unicode(UTF-16?)也。以下是其中一个文件的片段:</p> <blockquote> <p>c:\anonyfolder\anonyfile.c(17169) : warning C4701: potentially uninitialized local variable 'object_adrs2' used<br/> c:\anonyfolder\anonyfile.c(17409) : warning C4701: potentially uninitialized local variable 'pclcrd_ptr' used<br/> c:\anonyfolder\anonyfile.c(17440) : warning C4701: potentially uninitialized local variable 'object_adrs2' used </p> </blockquote> <p>文件的前16个字节如下所示:</p> <blockquote> <p>feff 003c 0068 0074 006d 006c 003e 000d</p> </blockquote> <p>文件的其余部分也是空字节。在</p> <p>我希望能够对这些文件执行字符串和正则表达式搜索/匹配。但是,当我尝试下面的代码时,我得到一个错误消息。在</p> <pre><code>buildLog = open(sys.argv[1]).readlines() for line in buildLog: match = u'warning' if line.find(match) >= 0: print line </code></pre> <p>错误消息:</p> <blockquote> <p>Traceback (most recent call last):<br/> File "proclogs.py", line 60, in <br/> if line.find(match) >= 0:<br/> UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)</p> </blockquote> <p>显然,它在文件开头的<code>0xff</code>字节中阻塞了<code>0xfeff</code>。如果我跳过第一行,就没有匹配项:</p> ^{pr2}$ <p>同样,使用非Unicode <code>match = 'warning'</code>也不会产生任何结果。在</p> <h2>问题</h2> <p>如何在Python中使用字符串和正则表达式搜索Unicode文件?另外,如何才能重建原始文件?(目标是能够在警告行上编写注释,而不会损坏文件。)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>试过这个吗?当用非ascii字符保存解析脚本时,我让解释器在文件前面建议一个替代编码。在</p> <pre><code>Non-ASCII found, yet no encoding declared. Add a line like: # -*- coding: cp1252 -*- </code></pre> <p>把它作为脚本的第一行就解决了这个问题。不过,不确定这是否是导致错误的原因。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
尽管Python中的所有内容都是引用,为什么Python导师在没有指针的列表中绘制字符串和整数?
7 回答
尽管python中的表达式为false,但循环仍在运行
2 回答
尽管python代码正确,但从nifi ExecuteScript处理器获取语法错误
7 回答
尽管Python在Neovim中工作得很好,但插件不能识别Neovim中的Python主机
10 回答
尽管python字典包含了大量的条目,但它并没有增长
9 回答
尽管python说模块存在,为什么我会得到这个消息?
3 回答
尽管setuptools和控制盘是最新的,但无法识别singleversionexternallymanaged
6 回答
尽管stdout和stderr重定向,但未捕获错误消息
5 回答
尽管Tensorboard的事件太大,但Tensorboard的步骤太少了
1 回答
尽管tkinter上的变量已更改,但显示未更改
10 回答
尽管try/except使用Python进行单元测试时出现断言错误
1 回答
尽管URL是sam,但仍会抛出“达到最大重定向”
10 回答
尽管url有效,Pandas仍读取url的\u csv错误
5 回答
尽管while中存在时间延迟,但LINUX线程的CPU利用率为100%(1)
8 回答
尽管x0在范围内,Scipy优化仍会引发ValueError
10 回答
尽管xpath正确,但使用selenium单击链接仍不起作用
1 回答
尽管下载了ffmpeg并设置了路径变量python,但没有后端错误
8 回答
尽管下载了i,但找不到型号“fr”
4 回答
尽管下载了plotnine包,但未获取名为“plotnine”的模块时出错
6 回答
尽管为所有行指定了权重,网格(0)仍不起作用
4 回答