获取文本文件行中预定义句子的行?

时间:2011-09-09 00:08:35

标签: python

所以我有这段代码:

for line in open('music.txt'):
    if 'file : "' in line:


        c = line.split('file : "')

        del c[0]

        d="".join(c)

        a=re.sub('"','',d)

        e=re.sub(',','',a)


        urls.append(e)  

有没有办法做到这一点,但没有文件?

2 个答案:

答案 0 :(得分:2)

如果你想从标准输入读取(例如,在管道中),那么你可以写

import sys
for line in sys.stdin:

剩下的就行了。 (sys.stdin是对应于标准输入的打开文件)

如果列表中有行,则可以使用相同的代码遍历列表。

答案 1 :(得分:2)

也许你想要这样的东西:

urls = [re.findall(r'file : "(.*)"', line)[0].replace(',', '')
        for line in file if 'file :' in line]

,它适用于任何文件对象或列表。

对于标准输入,请使用file = sys.stdin

示例:

file = ['file : "test, 123, 456, abcde"', 
        'other line', 
        'file : "zzzzzzzzz"]

输出:

['test 123 456 abcde', 'zzzzzzzzz']