Python 2.7 如何从文本文件中删除目录路径

Python 2.7 如何从文本文件中删除目录路径,python-2.7,Python 2.7,我有一个包含这些行的文本文件 1.输入列表 D:\Dolby\u Harmanious\u kit\DRY\u run\u kit\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\u Signals\ITAF\u Tests\无缝开关\acmod21\u I0D0CRC.ec3-\tD:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\m1\u m28\u switch.cf

我有一个包含这些行的文本文件

1.输入列表

D:\Dolby\u Harmanious\u kit\DRY\u run\u kit\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\u Signals\ITAF\u Tests\无缝开关\acmod21\u I0D0CRC.ec3-\tD:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\m1\u m28\u switch.cfg

2.输入列表

D:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\u Signals\ITAF\u Tests\无缝交换机\acmod\u 2\u 252\u ddp.ec3-\tD:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Digital\m1\u m7\u交换机\u every\u 3frames.cfg

在这里,我需要删除路径名,如

“D:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\u Signals\ITAF\u Tests\无缝开关\” 和“D:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Digital\”

。请注意,所有行都有不同的路径名。我有一个删除路径名的示例代码

代码:

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\u Harmanious\u kit\DRY\u run\u kits\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\uSignals\ITAF\uTests\无缝开关\acmod21\u I0D0CRC.ec3-\tD:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\”

。我只需要删除该行中不包含“acmod21_I0D0CRC.ec3”的路径名


你能给我一些指导吗。

我已经尽我所能理解了你的问题, 这里您指定的路径不相似,即我理解的是, 你的道路可能是

a) D://a/b/c/file_name.cfg -#tD://a/b/c/d/e/file_name.cfg
我的理解正确吗

这里有两条路径以单行形式出现,但常见的是它包含-#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'

这是你想要的吗

是否要从文本文件中删除不相似的整个目录路径或与您的要求匹配的路径?所有路径都不相似。现在我尝试了您的代码,它删除了文件名之前的路径,并保留了文件。。。如果你的路径是,D://your\u path/etc.cfg-意味着你的代码删除到“D://your\u path/”并给出文件名-“etc.cfg”这就是你想要的?但我在同一行中有两个单独的路径。在这两个路径中包含文件名。这里要做的最后我需要这样的输出“inputlist acmod21_I0D0CRC.ec3-#tm1_m28_switch.cfg但我想要同一行中第一行的输出行。你能帮我一下吗?根据你的问题,我理解,你想要像输入列表中的“acmod21_I0D0CRC.ec3-#tm1_m28_switch.cfg”这样的输出是,D:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\u Digital\u Plus\u Decoder\u Imp\Test\u Materials\Test\u Signals\ITAF\u Tests\无缝开关\acmod21\u I0D0CRC.ec3-\tD:\Dolby\u Harmanious\u kit\DRY\u run\u kits\Dolby\m1\u m28\u switch.cfg我就是这样做的。这里它只返回文件名并删除路径。。。这不是你想要的手段,澄清你到底想要什么?只需复制整个txt文件并用名称粘贴,然后键入所需的预期输出。。基于此将有所帮助现在我正确获得了输出。但我不需要行中的(')。请使用split()函数删除该(')。我的回答是否有助于你们投票支持我的回答