Es wird der erste Beitrag sein. Normalerweise verwende ich C # er [^ 1], um eine robuste Desktop-App zu entwickeln, aber ich werde an Python arbeiten, um mein Wissen zu verbreiten. Vorderes Ende? Kannst du es essen? Python ist ziemlich frisch, weil ich in der Welt lebe.
Meine Tochter, die voll mit MMD [^ 2] ist, geht nacheinander zur Konvertierungsseite, um das Dateiformat zu konvertieren, und lädt die Datei hoch, sodass sie nur mit meinem eigenen PC ohne solche Probleme ausgeführt werden kann. Ich entschied mich für einen Konverter. Diesmal handelt es sich um eine MP3 → WAV-Konvertierung zur Verwendung mit MMD.
Wenn Sie mit "python mp3 wav" googeln, können Sie es anscheinend mit einer Bibliothek namens pydub konvertieren, daher habe ich es sofort eingeführt.
> pip install pydub
Benötigen Sie ffmpeg? Ich verstehe, ist es eine Wrapper-ähnliche Bibliothek von ffmpeg? Ich denke, ich sollte den Befehl ffmpeg selbst auswählen und schreiben, aber es ist eine gute Idee, also werde ich mich um pydub kümmern.
mp32wav.py
import pydub
import os
import sys
if __name__ == "__main__":
mp3 = sys.argv[1]
print(f"IN:{mp3}")
dirname = os.path.dirname(mp3)
baseName = os.path.splitext(os.path.basename(mp3))[0]
wav = os.path.join(dirname, f"{baseName}.wav")
print(f"OUT:{wav}")
audio = pydub.AudioSegment.from_mp3(mp3)
audio.export(wav, format='wav')
Ich wollte nur die Erweiterung ersetzen, aber es stellte sich heraus, dass es sich um einen unordentlichen Code handelte. Im Wesentlichen ...
Es ist nur so dass. Ich frage mich, warum C # er "os.path ..." schreiben sollte, obwohl es als "import os" geschrieben ist.
Nun, ich habe bestätigt, dass es wie erwartet funktioniert, aber selbst wenn ich diese mp32wav.py auf den Desktop lege, ist D & D nicht möglich. Bereiten Sie also eine Batch-Datei vor.
mp32wav.bat
@echo off
py mp32wav.py %1
Erstellen Sie eine Verknüpfung für diese Batchdatei auf Ihrem Desktop und D & D die MP3-Datei, die Sie konvertieren möchten, um eine WAV im selben Ordner wie die Originaldatei zu generieren. Herzliche Glückwünsche.
Anscheinend ist dies ein bekanntes Problem, aber wenn Sie ihm einen Dateinamen geben, der Leerzeichen in voller Breite enthält, wird er dort abgeschnitten. Es ist kein Problem, wenn Sie auch den Raum mit halber Breite zitieren, und es scheint, dass der zitierte zum Zeitpunkt von D & D als Befehlszeilenargument übergeben wird, aber er funktioniert im Fall mit Raum mit voller Breite nicht gut. Ich werde den Testcode in C # schreiben
argsTest.cs
static void Main(string[] args)
{
Console.WriteLine($"len={args.Length}");
foreach (var i in Enumerable.Range(0, args.Length))
{
Console.WriteLine(args[i]);
}
Console.ReadLine();
}
Wenn Sie dies aus einer Batch-Datei aufrufen und "aaa bbb.txt" (Speicherplatz halber Breite) und "aaa bbb.txt" (Speicherplatz voller Breite) essen,
Raum halber Breite
len=1
C:\Tmp\aaa bbb.txt
Raum in voller Breite
len=1
C:\Tmp\aaa
Es wird sein.
Normalerweise werden Leerzeichen in voller Breite nicht für Ordnernamen und Dateinamen verwendet, aber das Betriebssystem lässt solche Namen zu, und einige Benutzer kennen möglicherweise Leerzeichen in halber Breite und Leerzeichen in voller Breite überhaupt nicht. Daher sind einige Maßnahmen erforderlich. Ich denke. Ich sagte meiner Tochter, dass ich nur halb so breite Leerzeichen für den Ordnernamen und den Dateinamen verwenden könne, und ich habe dies vorerst vermieden (es gibt keine Möglichkeit, dass es keine Problemumgehung gibt ...). [^ 1]: Ist VB.NET mit C # 7.5 und VB6 2.0 mit 0.5?
Recommended Posts