我盯着这个看了一会儿,希望我错过了一些明显的东西。希望有人能告诉我。 我使用以下正则表达式查找纯文本文件路径:
p = re.compile(r'(([A-Za-z]:[\\/])|(\.\.[\\/])+)([A-Za-z0-9\-_]+[\\/])+[A-Za-z0-9\-_]+\.[a-zA-Z]+')
我知道这很可怕,但很管用。至少;当我运行python脚本时。我需要编译到exe以获得自包含的内容,为此我使用以下方法:
from distutils.core import setup
import py2exe
import os
taggerData = [('nltk_data/taggers', ['C:/Users/username/AppData/Roaming/nltk_data/taggers/conll2000_aubt.pickle'])]
setup(
console=[{'script': 'flurp.py'}],
options={
'py2exe':
{
'bundle_files': 2,
'includes': ['lxml.etree', 'lxml._elementpath'],
'compressed': True,
'excludes': ['_ssl'],
}
},
zipfile = None,
data_files=taggerData
)
现在当我有类似“C:\some\file\path\此处.txt“当我运行python脚本时,它确实得到了匹配。然而,当我编译脚本然后运行时,我没有得到相同的匹配。为了准确地再现这一点,我需要花费一些时间/工作来生成一个最小的脚本,所以基本上我只是想知道是否有人遇到过类似的问题,正则表达式在编译时的行为不同(使用py2exe(0.9.2.2))?你知道吗
在对我的正则表达式进行了一些实验之后,发现以下方法是有效的:
唯一的区别是在我的字符类[\/]之后加上+(例如反斜杠或正斜杠)。这不是一个很好的解决方案,因为它导致我的正则表达式不那么精确,但是双转义也没有帮助我。你知道吗
我希望这能帮助其他有同样问题的人。但是,由于我的解决方案感觉不太像样,我将把这个问题留给其他人来评论/也许更详细地解释一下这里发生了什么(或者它是否只是py2exe中的一个已知bug?)你知道吗
相关问题 更多 >
编程相关推荐