nicfit / eyeD3

eyeD3 is a Python module and command line program for processing ID3 tags. Information about mp3 files (i.e bit rate, sample frequency, play time, etc.) is also provided. The formats supported are ID3v1 (1.0/1.1) and ID3v2 (2.3/2.4).
http://eyed3.nicfit.net/
GNU General Public License v3.0
540 stars 58 forks source link

"file not found" using * wildcard #581

Open peeraxel opened 2 years ago

peeraxel commented 2 years ago

When trying

eyeD3 --remove-frame PRIV --remove-all-comments *.mp3

in a directory full of mp3's it answers with

file not found *.mp3

Same with other file suffixes, with . and other eyeD3 commands. Same in cmd.exe and PS. Individual filenames work correctly. I'm new to Python. Could there be anything wrong with the installation? Using Python 3.10.7 and EyeD3 0.9.6 on Windows 10/64bit.

nicfit commented 1 year ago

How many files are we dealing with here? A quick test of 8 files and *.mp3 works for me (i.e. Linux bash)

UnixCro commented 1 year ago

Try ls *.mp3 . What's the answer?

peeraxel commented 1 year ago

Tested in a directory with >6000 files and in another one with only 13. dir *.mp3 lists all of them.

UnixCro commented 1 year ago

Maybe eyeD3 just has a problem with this set variable. You can try to work around it with for loops. And no, it can't be because of the installation... Try it for %i in (*.mp3) do eyeD3 --remove-frame PRIV --remove-all-comments %i

peeraxel commented 1 year ago

Good suggestion. Unfortunately there seems to be an issue with the [space] character. For each song i get an output like:

eyeD3 --remove-frame PRIV --remove-all-comments Artist Name - Song Title.mp3
file not found: Artist
UnixCro commented 1 year ago

Spaces are also not allowed to stand alone. Use quotation marks if your text contains a space.

eyeD3 --remove-frame PRIV --remove-all-comments --artist "Artist name" input.mp3
peeraxel commented 1 year ago

Both lines were the output. However, adding quotation marks to %i finally made it work:

for %i in (*.mp3) do eyeD3 --remove-frame PRIV --remove-all-comments "%i"

Thank you!