2016-03-25 12 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デジタル\ \ iが

のようなパス名を削除する必要がある。ここ

を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デジタル\"

。注すべてのラインは、パスNを除去するためのサンプルコードを有するnames.I異なる経路を有することを\ 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 \ "

.I neその行の "acmod21_I0D0CRC.ec3"を除くパス名だけを削除します。

私にこれを案内してもらえますか?あなたが指定したパスのiは理解するものすなわち類似していないここで私はあなたの質問を理解し、 、 あなたのパスが

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

かもしれない件まで私がやった

+0

あなたの要件に一致する似ていないかパスではないテキストファイルからディレクトリパス全体を削除しますか? –

+0

すべてのパスは似ていません。 – lotus

+0

あなたのコードを試してみましたが、ファイル名の前のパスを削除してファイルを残しました... Uパスが好きなら、D://your_path/etc.cfg - あなたのコードが "D:// your_path/"ファイル名を与える - " etc.cfg "これはあなたが欲しいですか? –

答えて

1

はそれが私が理解何正しいですか?

ここでは1行に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ファイルをコピーして名前で貼り付けて、あなたが望む期待出力を入力してください。それに基づいて助けてくれるでしょう –

関連する問題