2016-03-25 103 views
1

我有一個包含這些行的文本文件。如何從文本文件中刪除目錄路徑

1.inputlist

d:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby_Digital_Plus_Decoder_Imp \ Test_Materials \ Test_Signals \ ITAF_Tests \ seamless_switch \ acmod21_I0D0CRC.ec3 - #TD爲\ Dolby_Harmanious_kit \ DRY_run_kits \杜比\ m1_m28_switch.cfg

2.inputlist

d:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby_Digital_Plus_Decoder_Imp \ Test_Materials \ Test_Signals \ ITAF_Tests \ seamless_switch \ acmod_2_252_ddp.ec3 - #TD爲\ Dolby_Harmanious_kit \ DRY_run_kits \數碼\ m1_m7_switch_every_3frames.cfg

在這裏,我需要刪除像

路徑名稱「d:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby_Digital_Plus_Decoder_Imp \ Test_Materials \ Test_Signals \ ITAF_Tests \ seamless_switch \」 和 「d:\ Dolby_Harmanious_kit \ DRY_run_kits \數字\」

。注意,所有的線具有names.I具有示例代碼刪除路徑N的不同路徑AME。

代碼:

import re 
b = open ('Filter_Lines.txt','w') 
with open('Lines.txt') as f: 
    for trim in f: 
     repl = (re.sub('D:.*\\\\','',trim).rstrip('\n')) 
     b.write(repl + '\n') 

b.close() 

但這裏有去除「一整段文字

d:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby_Digital_Plus_Decoder_Imp \ Test_Materials \ Test_Signals \ ITAF_Tests \ seamless_switch \ acmod21_I0D0CRC.ec3 - #tD:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby \「

。我ne編輯刪除該行中不包含「acmod21_I0D0CRC.ec3」的路徑名稱。

你能指導我嗎?

+0

是否要從文本文件中刪除完整的目錄路徑,該路徑與您的要求不相似或不相符? –

+0

所有路徑都不相似。 – lotus

+0

現在我嘗試了你的代碼,它刪除了文件名前的路徑,並且它留下了文件......就像你的路徑是,D://your_path/etc.cfg--意味着你的代碼將刪除upto「D:// your_path/「並提供文件名 - 」etc.cfg「這是你想要的? –

回答

1

我做什麼高達我明白你的問題, 在這裏你指定路徑的不相似即我瞭解,你 路徑可能是

a) D://a/b/c/file_name.cfg -#tD://a/b/c/d/e/file_name.cfg 

是糾正我的理解?

這裏2條路徑出現在單行中,但常見的事情是它包含 - #t, 所以簡單地用split方法來分割它。

這裏

我也根據我從您的文章瞭解,

import re 
li = [] 
b = open ('file_sample.txt','w') 
with open ('file_sam.txt') as f: 
    for i in open ('file_sam.txt','r'): 
     a = [re.sub('.*\\\\','',i).rstrip('\n') for i in i.split('D:')] 
     b.write(''.join(a) + '\n') 
b.close() 

這裏我輸入的是,

'D:\Dolby_Harmanious_kit\DRY_run_kits\Dolby_Digital_Plus_Decoder_Imp\Test_Materials\Test_Signals\ITAF_Tests\seamless_switch\acmod21_I0D0CRC.ec3 -#tD:\Dolby_Harmanious_kit\DRY_run_kits\Dolby\m1_m28_switch.cfg' 
'D:\Dolby_Harmanious_kit\DRY_run_kits\Dolby_Digital_Plus_Decoder_Imp\Test_Materials\Test_Signals\ITAF_Tests\seamless_switch\acmod_2_252_ddp.ec3 -#tD:\Dolby_Harmanious_kit\DRY_run_kits\Digital\m1_m7_switch_every_3frames.cfg' 

它給了我,

'acmod21_I0D0CRC.ec3 -#tm1_m28_switch.cfg' 
'acmod_2_252_ddp.ec3 -#tm1_m7_switch_every_3frames.cfg' 

這是你想要的嗎?

+0

但是我想在第一行的輸出線在同一行 – lotus

+0

你能幫我這個 – lotus

+0

根據你的問題我明白,你想輸出像這樣「acmod21_I0D0CRC。 ec3 - #tm1_m28_switch.cfg「是您的輸入列表中的D:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby_Digital_Plus_Decoder_Imp \ Test_Materials \ Test_Signals \ ITAF_Tests \ seamless_switch \ acmod21_I0D0CRC.ec3 - #tD:\ Dolby_Harmanious_kit \ DRY_run_kits \ Dolby \ m1_m28_switch.cfg這個,這裏只返回文件名,它刪除路徑...這不是你想要的手段,澄清你到底是什麼?簡單地複製你的整個txt文件並粘貼它的名稱,並輸入你想要的期望輸出..將幫助基於該 –