用python把相同名称的放在一起,python实现将具有相同名称的文件放入相应的文件夹中,把,对应,内...

"""

文件处理的流程:

1.获取到所有文本文件的名称列表

2.对其进行相应的处理(去除后面的/n)

3.对每一个文本,查找对应的同名文件夹,并放入其中,如果没有文件夹,创建放入其中

unsolved:文本名称包含特殊字符 但利用cmd方式获取到的名称列表无法读取到变成了空格

"""

import os

import shutil

filepath=r'E:\\fashioninfo\\'#你指定的文件存放路径

curdir=os.getcwd()

print("当前工作目录为{}".format(curdir))

os.chdir(filepath)

curdir=os.getcwd()

print("当前工作目录为{}".format(curdir))

# filename='xxloki'

# os.makedirs(filename)

#doclist='E:\\fashioninfo\\txtlist.txt'

rawtxtlist=[]#获取到的是所有文本文档和文件夹的名字

txtlist=[]

#文本名称包含特殊字符 但利用cmd方式获取到的名称列表无法读取到变成了空格

# with open(doclist, 'r', encoding='gbk') as file:

# for line in file:

# #if line.replace("\n","")[-4:0]=='.txt':

# rawtxtlist.append(line)

#需要利用新的方法获取文本列表

"""os.listdir()函数得到的是仅当前路径下的文件名,不包括子目录中的文件,所有需要使用递归的方法得到全部文件名。"""

rawtxtlist=os.listdir(curdir)

# for i in rawtxtlist:

# print(i)

print("所有文本文档和文件夹的数目为{}".format(len(rawtxtlist)))#所有文本文档和文件夹的数目为57436

#包含了 文档列表.bat txtlist.txt(before 用于生成所有文本文档和文件夹的名字的文件)去除

for i in rawtxtlist:

if(i=='文档列表.bat'or i=='txtlist.txt'):

rawtxtlist.remove(i)

print("在去除无关的文本文档和文件夹的数目为{}".format(len(rawtxtlist)))#在去除无关的文本文档和文件夹的数目为57434

#it is last version, now it has been abolished

#每个元素中都包含\n,我们需要进行去除

# for i in range(len(rawtxtlist)):

# rawtxtlist[i]=rawtxtlist[i].replace("\n","")

#print(rawtxtlist)

#获取包含所有文本文档名称的列表

for i in rawtxtlist:

if(i[-4:]=='.txt'):

#print(i)

txtlist.append(i)

print("所有文本文档数目为{}".format(len(txtlist))) #所有文本文档数目为34309

for i in txtlist:

txt=i[:-4]

#print(i)

if (os.path.exists(txt) == True):

try:

shutil.move(i,txt)

except Exception as e:

print("移动文件失败,原因:", e)

else:

#如果当前文本文档没有对应的同名文件夹,则进行创建

os.makedirs(txt)

try:

shutil.move(i, txt)

except Exception as e:

print("移动文件失败,原因:", e)

'''

#print(txtlist[545][:-4]) 获取文本名称

'''

# if (os.path.exists(txt) == True):

# try:

# src = txt + '.txt'

# shutil.move(src, txt)

# except Exception as e:

# print("移动文件失败,原因:", e)

# else:

# #如果当前文本文档没有对应的同名文件夹,则进行创建

# os.makedirs(txt)

# try:

# src = txt + '.txt'

# shutil.move(src, txt)

# except Exception as e:

# print("移动文件失败,原因:", e)

"""

move(src, dst): 将src移动至dst目录下。若dst目录不存在,则效果等同于src改名为dst。若dst目录存在,将会把src文件夹的所有内容移动至该目录下面

src:源文件夹或文件

dst:移动至dst文件夹,或将文件改名为dst文件。如果src为文件夹,而dst为文件将会报错

copy_function:拷贝文件的方式,可以传入一个可执行的处理函数。默认为copy2,Python3新增参数

"""

"""

#获取文件的名称,并测试是否存在该文件

#test1=txtlist[0][:-5]

test1='做最雅痞的工装仔!Carhartt WIP x Clarks Originals全新联名鞋款释出!'

#if 存在 则放入

#else 不存在 则创建并放入

if (os.path.exists(test1)==True):

try:

src=test1+'.txt'

shutil.move(src,test1)

except Exception as e:

print("移动文件失败,原因:", e)

"""

你可能感兴趣的:(用python把相同名称的放在一起,python实现将具有相同名称的文件放入相应的文件夹中,把,对应,内...)