通过使用python检查字符串开头的数字来创建文件夹

时间:2016-06-03 19:32:11

标签: python directory

我有一个字符串列表,其中包含如下文件

filename = [ '000101 FL - Project Title Page.DOC',
 '014200 FL - References.DOC',
 '095446 FL - Fabric-Wrapped Ceiling Panels.DOC',
 '142113 FL - ELECTRIC TRACTION FREIGHT ELEVATORS.DOC']

我想检查每个字符串中是否存在名称由Div +前两个数字组成的文件夹,例如Div00,Div01,Div09,Div14。如果不是,我想创建此文件夹。然后将文件名存储在此文件夹中。

在伪代码中,我认为它与

类似
for file in filenames 
    if 'Div' + file[0][0] not a folder
        make folder 'Div' + file[0][0]
        add file to folder
    else
        add file to folder Div + file[0][0]

将有多个文件以相同的两个数字开头,这就是我想将它们排序到文件夹中的原因。

如果您需要任何澄清,请告诉我。

3 个答案:

答案 0 :(得分:1)

使用os.mkdir创建目录,使用shutil.copy2复制文件

import os
import shutil

filenames = [ '000101 FL - Project Title Page.DOC']

for filename in filenames:
    folder = 'Div' + filename[:2]       # 'Div00'

    # Create the folder if doesn't exist
    if not os.path.exists(folder):
        os.makedirs(folder)

    # Copy the file to `folder`
    if os.path.isfile(filename):
        shutil.copy2(filename, folder)  # metadata is copied as well

答案 1 :(得分:1)

您可以检查是否有文件夹,如果文件夹不存在则可以进行

if not os.path.exists(dirName):
    os.makedirs(dirName)

答案 2 :(得分:0)

尝试这样的事情:

import os
import shutil

for file in filenames
    dir_name = "Div%s" % file[0:2]
    if not os.path.isdir(dir_name)
        os.makedirs(dir_name)
    shutil.copy(file, dir_name)