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"
質問する
52 次
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 ファイル パスには未加工の文字列を使用することをお勧めしますが、スラッシュやバックスラッシュを 2 つ使用することもできます。
于 2013-10-22T16:57:52.340 に答える