2014-02-18 55 views
0

我有一個不適合分割的文本文件,我想從每個文件打印出路徑和文件名。從文件中找到路徑和文件名並將其打印出來

線可以是這樣的:

"sometextC:\folder\folder\filename.exesometext" 
"sometext C:\folder\filename.exe sometext" 

等等...

我想是這樣的:

for line in inputFile.readlines(): 
    hit = find everything between C:\ and .exe 
    print hit 

輸出應該是這樣的:

C:\folder\folder\file.exe 
C:\folder\file.exe 

WHERE文件夾a nd文件隨文本中找到的內容而改變。對不起,如果我的第一篇文章有​​點不清楚。父母的數量等可以有很大的不同。

謝謝!

+0

你能告訴我們嗎? –

+0

http://techtavern.wordpress.com/2009/04/06/regex-that-matches-path-filename-and-extension/ – user3323307

回答

2

作爲第一個近似值,您可以使用re.finditer來查找可能是路徑的東西。下面的例子可能還匹配事情是不是有效路徑(我不是在Windows上的路徑規則強,所以你應該測試,這是你想要徹底的):

contents = inputFile.read() 
for path in re.finditer("(C:\\.*?\.exe)", contents): 
    print path 
+0

在re.finditer中使用路徑(「(C:\\\。*? \ .exe)「,contents):打印路徑時給了我這個:<_sre.SRE_Match對象在0x1234567>。我希望它在找到它們時打印所有帶有文件名的路徑。 – user3323307

+0

使用print path.groups()讓我得到我想要的結果。只是通過使用小條我想我可以解決這個問題。如果可以的話,請隨意給我一個「一行」。非常感謝! – user3323307

0

你可以使用

for path in re.finditer("(C:\Users\Default\thanks.exe)", contents): 
print path 

打印已使用什麼樣的正則表達式的路徑

相關問題