Pracuję nad programem do pobierania wideo z YouTube, konwertowania go do formatu MP3 i tworzenia struktury katalogów dla plików.
Mój kod to:
FileUtils.cd("#{$musicdir}/#{$folder}") do
YoutubeDlhelperLibs::Downloader.get($url)
if File.exists?('*.mp4')
puts 'Remove unneeded tempfile'
Dir['*.mp4'].each do |waste|
File.delete(waste)
end
else
puts 'Temporary file already deleted'
end
Dir['*.m4a'].each do |rip|
rip.to_s
rip.split
puts 'Inside the function'
puts rip
end
end
Pierwsza trafia do już utworzonego folderu muzycznego. Wewnątrz tego wykonuję get
. Następnie mam w katalogu dwa pliki: „xyz.mp4” i „xyz.m4a”.
Chciałbym pobrać nazwę pliku bez rozszerzenia, aby móc obsługiwać oba pliki inaczej.
Używam tablicy, ale tablica tylko dla jednego dopasowania brzmi dla mnie szalenie.
Czy ktoś inny pomysł?
$globals
tak, jak jesteś. Są bardzo mocną wskazówką, że nie rozumiesz zakresu zmiennych i polegasz na globalnych, aby „oszukiwać”. Mają zapach kodu i prowadzą do nieszczęścia i bólu.rip.to_s
irip.split
nic nie robić.Odpowiedzi:
Możesz użyć następujących funkcji do swojego celu:
źródło
extn
jest to ciąg".mp4"
lub nawet ciąg".*"
.