2016-03-25 104 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文件并粘贴它的名称,并输入你想要的期望输出..将帮助基于该 –