【问题标题】:Writing a function to move two files with the same name (with different file extensions) to a folder with the same name in python在python中编写一个函数将两个同名(具有不同文件扩展名)的文件移动到同名文件夹中
【发布时间】:2022-01-13 12:30:21
【问题描述】:

我有以下格式的文件夹:

AAPL_176546(空子文件夹) AAPL_2000(空子文件夹) AAPL_30234(空子文件夹) AAPL_176546.mp3 AAPL_176546.txt AAPL_2000.mp3 AAAPL_2000.txt AAPL_30234.mp3 AAPL_30234.txt

我希望遍历文件夹并将相应的 .txt 和 .mp3 文件移动到子文件夹中(例如将 AAPL_176546.mp3 和 AAPL_176546.txt 移动到 AAPL_176546)。

我试过了:

import os
import shutil

srcpath = "C:/Users/xeb15154/OneDrive - University of Strathclyde/Audio Files (5,506)/AAPL/"
destpath = "C:/Users/xeb15154/OneDrive - University of Strathclyde/Audio Files (5,506)/AAPL/"

for root, subFolders, files in os.walk(srcpath):
    for file in files:
        subFolder = os.path.join(destpath, file)
        if not os.path.isdir(subFolder):
            os.makedirs(subFolder)
        shutil.move(os.path.join(root, file), subFolder)

但这会为每个文件创建文件夹,即名为 AAPL_176546.mp3 和 AAPL_176546.txt 的子文件夹,其中存储了相应的文件。此外,当将上述代码用于具有不同文件名长度的文件的目录时,它再次失败。

任何关于此事的帮助将不胜感激!

【问题讨论】:

    标签: python directory directory-structure


    【解决方案1】:

    我正在寻找遍历文件夹并移动 将相应的 .txt 和 .mp3 文件放入子文件夹中(例如 将 AAPL_176546.mp3 & AAPL_176546.txt 移动到 AAPL_176546)。

    我建议使用os.path.splitext 函数,它确实将文件名拆分为正确的名称和扩展名(包括最后一个点)

    import os
    name1, ext1 = os.path.splitext("AAPL_176546.mp3")
    print(name1)
    name2, ext2 = os.path.splitext("AAPL_176546.txt")
    print(name2)
    

    输出

    AAPL_176546
    AAPL_176546
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多