【问题标题】:How to determine if mp3 file was downloaded and replace it? [closed]如何确定是否下载了 mp3 文件并替换它? [关闭]
【发布时间】:2020-12-20 15:28:19
【问题描述】:

有没有办法确定 mp3 文件是否下载到 PC 上并将其替换到另一个文件夹?
例如 - 我下载了一首新歌。它已下载到Downloads 文件夹,但我想自动将歌曲替换到Music 文件夹。
用 Python 可以吗?

【问题讨论】:

    标签: python replace directory mp3


    【解决方案1】:

    您可以通过使用 python 中的内置 "os" 库来做到这一点。

    import os
    from os import path
    
    file_to_check = "somefile.mp3"
    
    from_path = "~/Downloads/" + file_to_check
    to_path = "~/Music/" + file_to_check
    
    if path.exists(from_path):
        os.rename(from_path, to_path)
    

    (根据评论进行编辑)如果您不知道文件的名称,这可以通过将所有 .mp3 文件移动到 Music 文件夹来实现:

    for song_file in os.listdir("Downloads/"):
        if song_file.endswith(".mp3"):
            os.rename("Music/" + song_file)
    

    【讨论】:

    • 如果我不知道mp3 文件的名称怎么办?
    • 您能否提供更多细节您是否正在搜索所有 mp3 文件并移动它们?
    • 我的想法是当mp3文件下载时必须替换它。这个文件的名称和文件数量无关紧要
    • 在答案中添加了如何做到这一点。
    • 我会把它放在while True 以便他们随时移动
    【解决方案2】:

    pathlib 将拥有您需要的所有功能。

    这是一个例子:

    from pathlib import Path
    
    source = Path('path_to_source_mp3')
    dest = Path('path_to_dest_mp3')
    
    if source.exists():
        source.replace(dest)
    

    【讨论】:

    • 如果我不知道mp3 文件的名称怎么办?
    • 您可以使用os.listdir()列出您的文件
    【解决方案3】:

    最后的代码是-

    import os
    from os import path
    
    from_path = 'C:/Users/username/Downloads/'
    
    for file in os.listdir(from_path):
        if file.endswith('.mp3'):
            from_path = 'C:/Users/username/Downloads/' + file
            to_path = 'C:/Users/username/Music/' + file
    
            os.rename(from_path, to_path)
    
            print("Moved")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      相关资源
      最近更新 更多