2

正規表現と一致するテキスト ファイルに問題が 1 つあります。Python は初めてです。私のファイルは次のようになります:

epg_slo3.txt:10346224:        Service_ID: 1 (0x0001)  [=  --> refers to PMT program_number]
epg_slo3.txt:10346236:            Start_time: 0xdce0112500 [= 2013-09-09 11:25:00 (UTC)]
epg_slo3.txt:10346237:            Duration: 0x0001000 [=  00:10:00 (UTC)]
epg_slo3.txt:10346246:                  event_name: "..©port"  -- Charset: ISO/IEC 8859  special table

私がする必要があるのは、次のようなものが必要です:

Service_ID: 1 (0x0001)  [=  --> refers to PMT program_number]: --> Program 1
Start_time: 0xdce0112500 [= 2013-09-09 11:25:00 (UTC)]: --> Start 2013-09-09 11:25:00 (UTC)
Duration: 0x0001000 [=  00:10:00 (UTC)] --> Duration 00:10:00 (UTC)
event_name: "..©port"  -- Charset: ISO/IEC 8859  --> Category ©port

私のコードは次のようになります:

#!/usr/bin/python
import codecs
import re

BLOCKSIZE = 1048576

with codecs.open('epg_slo10.txt', "r", "iso-8859-2") as sourceFile:
    with codecs.open('epg_slo.txt', "w", "utf-8") as targetFile:
        while True:
            contents = sourceFile.read(BLOCKSIZE)
            if not contents:
                break
            targetFile.write(contents)


input_file  = open('epg_slo.txt', "r")
output_file = open('epg_slo_kategorije.txt', "w")

for line in input_file:
    line = line.replace("Service_ID:","Program")
    line = line.replace("Start_time:","Start")
    line = line.replace("event_name:","Title")
    output_file.write(line)

これを手伝ってくれませんか?

読むためのthx。BR!

4

2 に答える 2

1

コードの前line = line.replaceに、次の行を追加します。

line = re.sub(r'^epg_slo3.txt:\d{8}:\s*','', line)

例えば。
もしも

line = "epg_slo3.txt:10346224:        Service_ID: 1 (0x0001)  [=  --> refers to PMT program_number]"

次に、呼び出した後re.sub

line = "Service_ID: 1 (0x0001)  [=  --> refers to PMT program_number]"
于 2013-09-11T07:46:03.337 に答える
1

regex以下を空の文字列 "" に置き換えます

/^epg_slo3.txt:\d{8}:\s*/
于 2013-09-11T07:13:54.063 に答える