LINUX.ORG.RU

[вопрос пионера]Python, командная строка, shntool


0

0
class DstDir:
    def __init__ (self, path, cue='', src='', dirs=[], other=[]):
        self.path = path
        self.cue = cue
        self.src = src
        self.dirs = dirs
        self.other = other

    def makeFlac (self):
        cuebreakpoints = subprocess.Popen(["cuebreakpoints", self.cue],
                stdout=subprocess.PIPE)
        cmd = ("shnsplit -O always -i wv -o " +
                "'flac flac -V -8 -e -p -o %f -' -t -%n " + self.src)
        print cmd
        shnsplit = subprocess.Popen(cmd,
                stdin=cuebreakpoints.stdout,
                stdout=subprocess.PIPE)
        print shnsplit.communicate()

Этот велосипед рассыпается при попытке запустить shnsplit, мотивируя тем, что не находит файл. Вот только файл этот совершенно точно есть, что подтверждает os.path.exists(). Может надо спецсимволы как-то заэкранировать?

egr@big:~/soundKonverter$ ./split_iso.wv.py /srv/audio/Aquarium\ Diskografy/02\ Aquarium\ Incognito/
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp
Ok!
DOING STAFF
Path:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp
Source:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv True
.cue file:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv.cue
Dirs:
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/scans.zadushevnye.pesni
Other files:
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv.cue
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.jpg
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.cue
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.LOG
shnsplit -O always -i wv -o 'flac flac -V -8 -e -p -o %f -' -t -%n /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv
Traceback (most recent call last):
  File "/home/egr/soundKonverter/split_iso.wv.py", line 95, in <module>
    WDir.makeFlac()
  File "/home/egr/soundKonverter/split_iso.wv.py", line 22, in makeFlac
    stdout=subprocess.PIPE)
  File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
    errread, errwrite)
  File "/usr/lib/python2.5/subprocess.py", line 1149, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

помоему уже можно делать музей с подобными скриптами :)
могу запостить свой :)
ищет все ape flac wv во всех указанных директориях и сохраняет разбитые флаки в текущей директории, сохраняя структуру исходных директорий
чистый баш, 43 строки

yekm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.