【问题标题】:Python file sortPython文件排序
【发布时间】:2016-06-07 18:11:43
【问题描述】:

所以我写了这个来帮助我对一堆不同文件夹中的文件进行排序,它的工作原理是从每个文件夹中获取第一个文件并为其创建一个文件夹,然后从每个文件夹中创建第二个文件并执行相同的操作,依此类推,但是当我运行代码时,什么都没有发生,有人可以帮忙。

import os, sys

path = "\Users\mac\Desktop\soliddd sort\dir"
fdir = os.listdir(path)
f = len(fdir[0])

array = [[] for i in xrange(f)]

def setArray(c, i, j):
    array[j][i] = c[j]

def chooseFile(j):
    for i in fdir:
        setArray(fdir[i], i, j)

def makedir(f, fdir):
    for i in f:
        folder = r"\Users\mac\Desktop\soliddd sort\dir"+str(i)
        if not os.path.exists(folder):
            os.makedirs(folder)

        for j in fdir:
            with open(os.path.join(folder, array[i][j], 'wb')) as temp:
                temp.write(buff)
            folder.close()

def main():
    for j in f:
        chooseFile(j)
    makedir(f, fdir)

【问题讨论】:

  • 首先,在你继续测试之前,SANDBOX 这个 .. 创建一些虚拟目录——在你知道它会工作之前不要在你关心的东西上运行它
  • 第二个单字母变量名称使您很难弄清楚您要做什么,并且可以帮助您更快地解决问题
  • 第三,使用import shutil,使用shutil.move(src, dst)来移动文件

标签: python import operating-system


【解决方案1】:

一个关于如何将文件分类到文件夹中的小例子,因为我不明白你为什么要从不同的位置随机选择文件。此示例获取所有文件名,然后让您选择一个通用文件名以排序到新文件夹中

def sort_files(base_dir="C:\sorted_files")
    import os, shutil
    folder_list     =   [
                            'folder_path_a',
                            'folder_path_b',
                        ]
    file_list       =   []
    for folder in folder_list:
        file_list.extend([os.path.join(folder, file_name) for file_name in os.listdir(folder)])
    key             = raw_input("Group files with <text> in the filename: ")
    matching_files  = [ file_name for file_name in file_list if key in file_name ]
    for file_name in matching_files:
        shutil.move(file_name, os.path.join(os.path.join(base_dir,key), os.path.basename(file_name)))

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 2011-01-03
    • 1970-01-01
    相关资源
    最近更新 更多