0
import re
ftplist = open('C:\Documents and Settings\jasong\My Documents\GooleDrive\lookup.txt','r')
txt = ftplist.read()

re1='([a-z]:\\\\(?:[-\\w\\.\\d]+\\\\)*(?:[-\\w\\.\\d]+)?)'

rg = re.compile(re1,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
    winpath1=m.group(1)
    print "("+winpath1+")"+"\n"
4

1 回答 1

2

直接循环文件对象:

with open(r'C:\Documents and Settings\jasong\My Documents\GooleDrive\lookup.txt','r') as ftplist:
    for line in ftplist:
        match = rg.search(line)

这将有效地读取文件,而不必先将所有内容加载到内存中。

注意:我还将您的路径设为原始字符串(通过r在其前面添加)以防止 Python 尝试解释以\反斜杠开头的转义序列;\n, \r,\t\b在普通字符串中都有特殊含义。对 Windows 文件路径使用原始字符串通常是一个好主意,尽管您也可以使用正斜杠或双反斜杠字符。

于 2013-10-22T16:57:52.340 回答