所以我有这段代码:
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)
有没有办法做到这一点,但没有文件?
答案 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']