Board logo

标题: [问题求助] 如何把曲目表提取出来 [打印本页]

作者: netdzb    时间: 2020-4-4 08:42     标题: 如何把曲目表提取出来

本帖最后由 netdzb 于 2020-4-4 08:44 编辑

PERFORMER "Various"
TITLE "宝丽金非常老牌精选"
FILE "CDImage.ape" WAVE
  TRACK 01 AUDIO
    TITLE "太阳一样"
    PERFORMER "刘文正"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "堆积情感"
    PERFORMER "邝美云"
    INDEX 00 03:28:07
    INDEX 01 03:30:10
  TRACK 03 AUDIO
    TITLE "时空寄情"
    PERFORMER "黄莺莺"
    INDEX 00 08:24:00
    INDEX 01 08:27:12
  TRACK 04 AUDIO
    TITLE "再见我的爱人"
    PERFORMER "邓丽君"
    INDEX 00 12:33:10
    INDEX 01 12:36:32
  TRACK 05 AUDIO
    TITLE "海角天涯"
    PERFORMER "王芷蕾"
    INDEX 00 16:03:02
    INDEX 01 16:06:07
  TRACK 06 AUDIO
    TITLE "廻"
    PERFORMER "李恕权"
    INDEX 00 19:30:30
    INDEX 01 19:33:22
  TRACK 07 AUDIO
    TITLE "故事的真相"
    PERFORMER "黄仲昆、杨林"
    INDEX 00 24:04:05
    INDEX 01 24:06:12
  TRACK 08 AUDIO
    TITLE "扬帆"
    PERFORMER "阳帆"
    INDEX 00 28:34:42
    INDEX 01 28:37:22
======

def main():
    with open('d:/test_trim.txt', 'w', encoding='UTF-8') as fout:
        can_write = False
        with open('d:/test.txt', 'r', encoding='UTF-8') as fin:
            line=fin.readline()
            while(line != ''):
                if line.find('TRACK') == -1:
                    line = fin.readline()
                    continue
                if line.find('TITLE') > -1:
                    print line
                    fout.write(line)
                line = fin.readline()
    print('Done.')

运行结果
应该是
TITLE "歌曲名",我关键的一个地方不会写。
就是输出的时候,怎么把TITLE和引号,
多余的tab去掉?
作者: wujunkai    时间: 2020-4-4 10:19

本帖最后由 wujunkai 于 2020-4-4 10:23 编辑

回复 1# netdzb
  1. r'(?<=TITLE ").+?(?=")'
复制代码
或者
  1. print line.lstrip()
复制代码
Ps:为了代码兼容性,建议使用print();
作者: netdzb    时间: 2020-4-4 10:35

我改成这样可以吗?
r'(?<=TITLE.*").+?(?=")'
因为我并不清楚title后面有几个空格,
或者是tab?
作者: wujunkai    时间: 2020-4-4 11:19

回复 3# netdzb


    原则上是可以,但python不允许
作者: sxw    时间: 2020-4-17 21:31

使用 raku.org(之前叫 Perl 6):
  1. .comb(/TITLE \s* \" <( \w+ )>\"/)[0].say if /TITLE/ for $=finish.lines
  2. =finish
  3. PERFORMER "Various"
  4. TITLE "宝丽金非常老牌精选"
  5. FILE "CDImage.ape" WAVE
  6.   TRACK 01 AUDIO
  7.     TITLE "太阳一样"
  8.     PERFORMER "刘文正"
  9.     INDEX 01 00:00:00
  10.   TRACK 02 AUDIO
  11.     TITLE "堆积情感"
  12.     PERFORMER "邝美云"
  13.     INDEX 00 03:28:07
  14.     INDEX 01 03:30:10
  15.   TRACK 03 AUDIO
  16.     TITLE "时空寄情"
  17.     PERFORMER "黄莺莺"
  18.     INDEX 00 08:24:00
  19.     INDEX 01 08:27:12
  20.   TRACK 04 AUDIO
  21.     TITLE "再见我的爱人"
  22.     PERFORMER "邓丽君"
  23.     INDEX 00 12:33:10
  24.     INDEX 01 12:36:32
  25.   TRACK 05 AUDIO
  26.     TITLE "海角天涯"
  27.     PERFORMER "王芷蕾"
  28.     INDEX 00 16:03:02
  29.     INDEX 01 16:06:07
  30.   TRACK 06 AUDIO
  31.     TITLE "廻"
  32.     PERFORMER "李恕权"
  33.     INDEX 00 19:30:30
  34.     INDEX 01 19:33:22
  35.   TRACK 07 AUDIO
  36.     TITLE "故事的真相"
  37.     PERFORMER "黄仲昆、杨林"
  38.     INDEX 00 24:04:05
  39.     INDEX 01 24:06:12
  40.   TRACK 08 AUDIO
  41.     TITLE "扬帆"
  42.     PERFORMER "阳帆"
  43.     INDEX 00 28:34:42
  44.     INDEX 01 28:37:22
复制代码
输出:
  1. 宝丽金非常老牌精选
  2. 太阳一样
  3. 堆积情感
  4. 时空寄情
  5. 再见我的爱人
  6. 海角天涯
  7. 故事的真相
  8. 扬帆
复制代码

作者: netdzb    时间: 2020-4-17 21:36

回复 5# sxw


这个用perl 5怎么写,手上没有perl6




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2