根据文件名自动创建文件夹

穆罕默德

我有一个文件夹,其中包含许多这样命名的文件:

sale_jone_BAL_EXT_HOPE_20191121130102.txt.xml.done 
sale_jone_BAL_EXT_HOPE_20191121131102.txt.xml.done
sale_jone_BAL_EXT_HOPE_20191122133102.txt.xml.done    
sale_jone_BAL_EXT_HOPE_20191123132102.txt.xml.done
sale_jone_BAL_EXT_LOCK_20191123132102.txt.xml.done
sale_jone_BAL_EXT_LOCK_20191123132102.txt.xml.done

我想从上面给出的文件名创建一个名称为(bound-2019-11-21)的文件夹。在文件中,前8个整数是日期。

我该怎么做?在这里,我有一个希望锁的文件夹

现在我想要的是从文件名在HOPE中创建文件夹,例如HOPE-> bound-2019-11-21

这是我的代码:

path='../picture/jack' #this is the path of folder in which the files are 
                        located
dirs=os.listdir(path)
b=[]
for file in dirs:
    #print(file)
    a=re.findall(r'HOPE',file) #finding the file name HOPE from the folder
    if a:
      b.append(file)

print(b)
for i in b:
    t=re.findall(r'\d{8}',i) #finding the date from the file in list
    print(t)
戈戈伦

如果您的格式有一定的可变性和/或目录中包含多个文件,而您需要忽略其中的一些文件,则regex是一个合理的选择。\w+?(\d{8,})\.txt\.xml\.done$似乎是个不错的入门方法,因为我们只有文字字符,一批至少8位数字和.txt.xml.done后缀。

import os
import re

path = "../picture/jack"
path = os.path.join(*path.split("/"))

for f in os.listdir(path):
    date = re.match(r"\w+?(\d{8,})\.txt\.xml\.done$", f)

    if date:
        p = r"(\d{4})(\d\d)(\d\d).*"
        dest = os.path.join(path, re.sub(p, r"\1-\2-\3", date.group(1)))
        os.makedirs(dest, exist_ok=True)
        os.replace(os.path.join(path, f), os.path.join(dest, f))

这将根据yyyy-mm-dd格式在文件夹中创建和移动文件。

"\w*?_HOPE_\w*?(\d{8,})\.txt\.xml\.done$" 如果只希望_HOPE_示例代码中包含的文件,则可以使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

gulp任务,根据文件名动态创建具有名称的文件夹

根据文件名的子字符串创建文件夹

根据文件名创建文件夹

批量创建文件夹并根据部分文件名重定位文件

在文件夹中自动创建文件(Python)

我试图通过使脚本根据文件名构建文件夹结构来清理脚本

Applescript-根据文件名的第一个单词创建文件夹

根据Shell中的文件输出创建文件名

根据部分文件名创建文件夹,然后将文件移动到创建的文件夹中

根据文件名(不包括括号和方括号)批量创建文件夹

Windows Batch根据文件名创建文件夹

需要.bat文件,它将根据文件名创建文件夹

R:使用文件名创建文件夹

用空格分隔的文件名创建文件夹并将文件复制到其中

遍历目录中的文件,根据文件名创建文件夹,并将文件移动到相应的文件夹中

7zip批处理创建文件夹而不是文件名

在文件夹内创建文本文件,然后重命名文件夹以匹配其中的文件名

批处理文件以基于文件名创建文件夹

Mac OS –根据文件名的一部分创建文件夹

如何从文件名创建文件夹并在 PHP 中移动它?

根据文件名 bash 创建文件夹

为每个文件名创建文件夹并移动文件

批处理命令根据文件名创建文件夹并将文件/文件夹移动到创建的文件夹

如何使用文件名的前几个字母创建文件夹?

仅使用文件名的一部分从文件名创建文件夹

BATCH Script - 使用文件名的特定部分创建文件夹

根据部分文件名批量创建文件夹并将文件移动到文件夹

使用python根据包含日期的文件名创建文件夹和子文件夹

使用 Makefile 从特定文件名创建文件夹