python:regex没有抓住文本的最后一部分

时间:2015-04-08 20:21:10

标签: python regex subprocess

Python 2.7.9(默认,2014年12月10日,12:24:55)[MSC v.1500 32位(英特尔)]获胜 32。

我有这个代码来测试...... 它解析了进程bs1770gain的输出,我需要它的所有小部分......我尝试使用subprocess.call,popen和pipe,check_output ......我得到了结果但是然后奇怪的事情发生在正则表达式中..撞到一堵墙...... 所以......

#!/usr/bin/env python

import re
import subprocess
#from subprocess import Popen, PIPE

#p = Popen(['bs1770gain','C:\\Users\\myrthe\\Music\\', '-file '],stdin=PIPE, stdout=PIPE, stderr=PIPE)
#output, err = p.communicate(b"input data that is passed to subprocess' stdin")
#inputtexts = p.returncode
regex = re.compile(ur'(\s{2,2}\[\d+\/\d+\].*?|\[ALBUM\].*?)(?=\s{2,2}\[\d+\/\d+\]|\s{2,2}\[ALBUM\]:|done\.$)', re.DOTALL | re.UNICODE)
#inputtext = open(r'C:\Users\myrthe\Music\2014 - 1989\result.txt')
#print(inputtext.read())
#inputtexts = subprocess.call(['bs1770gain','C:\\Users\\myrthe\\Music\\'])
output =  subprocess.check_output(['bs1770gain','C:\\Users\\myrthe\\Music\\'])
print (output)
results = re.findall(regex, output)
for r in results:
    print('=======result====')
    print(r)

print (output)

这是我从输出中得到的东西...一些奇怪的小东西但是正如我们在正则表达式后看到的那样一切都在那里

analyzing "2014 - 1989" ...
  [1/19] "01. Welcome To New York.mp3":
      integrated:  -7.9 LUFS / -15.1 LU
  [2/19] "02. Blank Spac        4%
      integrated:  -8.3 LUFS / -14.7 LU
  [3/19] "03. Style.mp
      integrated:  -7.5 LUFS / -15.5 LU
  [4/19] "04. Out Of The Woods.mp
      integrated:  -9.1 LUFS / -13.9 LU
  [5/19] "05. All You Had To Do Was Stay.mp3":
      integrated:  -7.8 LUFS / -15.2 LU
  [6/19] "06. Shake It Of        2%
      integrated:  -8.2 LUFS / -14.8 LU
  [7/19] "07. I Wish You Would.mp3":
      integrated:  -8.4 LUFS / -14.6 LU
  [8/19] "08. Bad Blood.mp3":
      integrated:  -8.8 LUFS / -14.2 LU
  [9/19] "09. Wildest Dreams.mp3"
      integrated:  -9.9 LUFS / -13.1 LU
  [10/19] "10. How You Get The Girl.mp3":
      integrated:  -8.4 LUFS / -14.6 LU
  [11/19] "11. This Love.mp
      integrated:  -9.0 LUFS / -14.0 LU
  [12/19] "12. I Know Places.mp
      integrated:  -7.8 LUFS / -15.2 LU
  [13/19] "13. Clean.mp3":
      integrated:  -9.9 LUFS / -13.1 LU
  [14/19] "14. Wonderland.mp3":
      integrated:  -8.2 LUFS / -14.8 LU
  [15/19] "15. You Are In Love.mp
      integrated:  -10.7 LUFS / -12.3 LU
  [16/19] "16. New Romantics.
      integrated:  -7.8 LUFS / -15.2 LU
  [17/19] "17. I Know Places (Voice Memo        1%
      integrated:  -19.4 LUFS / -3.6 LU
  [18/19] "18. I Wish You Would (Voice Memo).mp3":
      integrated:  -18.4 LUFS / -4.6 LU
  [19/19] "19. Blank Space (Voice Memo        4%
      integrated:  -17.9 LUFS / -5.1 LU
  [ALBUM]:
      integrated:  -9.2 LUFS / -13.8 LU
done.

这是正则表达式后结果的最后一部分。似乎一切都在那里......

=======result====
  [16/19] "16. New Romantics.mp3":
      integrated:  -7.8 LUFS / -15.2 LU

=======result====
  [17/19] "17. I Know Places (Voice Memo).mp3":
      integrated:  -19.4 LUFS / -3.6 LU

=======result====
  [18/19] "18. I Wish You Would (Voice Memo).mp3":
      integrated:  -18.4 LUFS / -4.6 LU

=======result====
  [19/19] "19. Blank Space (Voice Memo).mp3":
      integrated:  -17.9 LUFS / -5.1 LU

除了......并且有问题,我不会因为我的生活在我的结果中得到[ALBUM]。我尝试使用输出到文本文件的在线检查器上的正则表达式,尝试使用文本文件中的输出在此机器上的正则表达式...它给出了我想要的。我在我的linux机器上使用相同的正则表达式,我得到了我想要的结果。但是这样直接......我只是没有最后[ALBUM]。 因此,如果你们中的任何一个人能够对此有所了解或者让我走上正确的道路,我真的很感激。

0 个答案:

没有答案