鱼C论坛

 找回密码
 立即注册
查看: 125|回复: 3

能否在下载的同时去掉文件名中的空格等字符?

[复制链接]
发表于 2024-5-28 07:42:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用 command = f"""spotdl --output "{{artist}}/{{album}}/{{track-number}}_{{title}}.{{output-ext}}" {url}"""  这种命令来下载时,文件名带有空格,能否下载的同时用replace等来替换掉空格呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-28 07:43:01 | 显示全部楼层
是的,你可以在下载文件时使用字符串的`replace`方法来替换文件名中的空格。这样,你就可以修改你的命令,将文件名中的空格替换为其他字符或完全删除它们。

以下是一种可能的实现方式:
import os

# 下载链接和要替换的字符
url = "https://example.com/song/artist - album/song title.mp3"
replace_char = "_"  # 替换为空格的字符

# 获取文件名并进行替换
file_name = url.split("/")[-1]  # 提取文件名(最后一个元素)
new_file_name = file_name.replace(" ", replace_char)  # 替换空格

# 下载命令
command = f'spotdl --output "{{artist}}/{{album}}/{{track-number}}_{new_file_name}.{{output-ext}}" {url}'
os.system(command)

这里我们使用字符串的`replace`方法将文件名中的空格替换为指定的字符(在这个例子中为下划线)。然后我们将修改后的文件名插入到命令字符串中。

请注意,在此例中我们仅仅将空格替换为下划线作为示例。你可以根据需要将空格替换成任何你喜欢的字符。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-28 07:55:10 | 显示全部楼层
FishC 发表于 2024-5-28 07:43
是的,你可以在下载文件时使用字符串的`replace`方法来替换文件名中的空格。这样,你就可以修改你的命令, ...

好像不对,跟url没关系

Processing query: https://open.spotify.com/album/4 ... H2apuTv2g10mtBu69PA
Found 18 songs in What. (Album)
FFmpegError: Failed to convert Bo Burnham - Wdidln?, you can find error here: C:\Users\dengz\.spotdl\errors\ffmpeg_error_2024-05-28-07-52-47.txt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-28 07:55:20 | 显示全部楼层
blackantt 发表于 2024-05-28 07:55
好像不对,跟url没关系

Processing query: https:/ ...


抱歉,之前的回答有误。FFmpegError错误通常是由音频文件中的特殊字符引起的。要解决这个问题,我们可以使用正则表达式来删除文件名中的特殊字符。

首先,我们需要导入re模块,然后使用re.sub()函数来替换特殊字符。以下是一个例子:
import re
import os

# 下载链接和要替换的字符
url = "https://example.com/song/artist - album/song title.mp3"
replace_char = "_"  # 替换为下划线的字符

# 获取文件名
file_name = url.split("/")[-1]

# 使用正则表达式替换特殊字符
new_file_name = re.sub(r'[\\/:*?"<>|]', replace_char, file_name)

# 下载命令
command = f'spotdl --output "{{artist}}/{{album}}/{{track-number}}_{new_file_name}.{{output-ext}}" {url}'
os.system(command)

在这个例子中,我们使用re.sub()函数来替换文件名中的特殊字符。正则表达式`[\\/:*?"<>|]`用于匹配文件名中的特殊字符,然后将其替换为指定的字符(在这个例子中为下划线)。

请注意,这只是一种简单的处理方式,可能无法处理所有情况。你可能需要根据具体情况进一步调整正则表达式以满足你的需求。另外,确保安装了所需的模块和软件(如spotdl和FFmpeg),并正确配置了环境变量。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-26 12:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表