簡體   English   中英

python為什么找不到我的文件?

[英]Why can't python find my file?

因此有人寫了一個笑話陷阱腳本(例如“誘捕音樂”),但我無法使其正常工作。

usage: trapifier.py [-h] [--samples [SAMPLES]] inputfile outputfile

然而,盡管文件夾看起來像這樣

ls -l
total 14288
-rwxrwxrwx   1 ________  ________  7295612 Mar  2  2008 Chicago.mp3
-rwxr-xr-x@  1 ________  ________     1074 Apr 12 17:00 LICENSE
-rwxr-xr-x@  1 ________  ________     2871 Apr 12 17:00 README.md
-rwxr-xr-x@  1 ________  ________        6 Apr 12 17:00 requirements.txt
drwxr-xr-x@ 48 ________  ________     1632 Apr 12 17:00 samples
-rwxr-xr-x   1 ________  ________     2923 Apr 12 17:00 trapifier.py

此命令總是導致[Errno 2]沒有這樣的文件或目錄

./trapifier.py Chicago.mp3 Chiraq.mp3

要么

python trapifier.py Chicago.mp3 Chiraq.mp3

甚至

./trapifier.py /full/path/to/Chicago.mp3 Chiraq.mp3

是什么賦予了? 我覺得某個地方有個菜鳥錯誤。

根據請求的完整錯誤消息:

    Traceback (most recent call last):
  File "./trapifier.py", line 89, in <module>
    overlay(parse())
  File "./trapifier.py", line 32, in parse
    base_track = pydub.AudioSegment.from_mp3(inputfile)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydub/audio_segment.py", line 297, in from_mp3
    return cls.from_file(file, 'mp3')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydub/audio_segment.py", line 284, in from_file
    subprocess.call(convertion_command, stderr=open(os.devnull))
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in     __init__
    errread, errwrite)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1249,     in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

該腳本的源代碼托管在https://github.com/japesinator/trapifier.py

我擁有所有必需的庫(argparse,pydub,os,random)。

第一個有用的編輯:似乎是pydub.AudioSegment無法加載,是罪魁禍首。 但是,事情變得陌生。 在python終端中,我可以做

from pydub import AudioSegment

但是當我這樣做時,沒有得到這樣的模塊錯誤

導入pydub.AudioSegment

pydub找不到用於解碼和編碼mp3文件(以及所有其他非wave格式)的ffmpeg是很常見的。 如果您安裝了ffmpeg,但仍無法正常工作,則可以明確告訴pydub在哪里找到它,如下所示:

from pydub import AudioSegment
AudioSegment.ffmpeg = "/path/to/ffmpeg"

您可能還會發現我們對ffmpeg設置文檔很有幫助= D

編輯– 不得已的選擇 :如果盡最大努力仍無法使pydub查找ffmpeg,則可以在將文件傳遞到pydub之前將所有內容轉換為wave格式。 可以肯定,這是最后的手段,但是由於pydub本身支持wave,因此可以避免ffmpeg問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM