Como extrair o conteúdo ou arquivos de nomes de arquivos conhecidos em várias pastas aninhadas? Este artigo é sobre Python extraindo exemplos de código-fonte de operações de arquivo especificadas em pastas aninhadas .
Versão: python2.6.6
Ambiente: janela xp
Ideias para escrever código Python:
primeiro, coloque os dois arquivos py na pasta necessária, execute filelist.py primeiro e depois run.py. As funções desses dois arquivos são as seguintes:
filelist.py:
obtém a lista de arquivos na pasta atual e gera um arquivonames.txt.Você pode modificar manualmente este arquivo para definir a lista de arquivos que precisa ser extraída.
run.py:
Após a execução, você será solicitado a inserir a pasta de destino e, em seguida, o programa transferirá automaticamente o arquivo para o diretório especificado com base em nomes.txt.
arquivo filelist.py Código-fonte Python :
#encoding: utf-8
import os
filenames = os.listdir(os.getcwd())
for name in filenames:
filenames[filenames.index(name)] = name
out = open('names.txt','w')
for name in filenames:
filetype = name[len(name)-3:len(name)]
##更加后缀名拦截一些不需要的文件
##拦截规则可以自定定义
if filetype =='pbl':
print ("pbl 文件被拦截 -->"+name)
elif filetype =='pbr':
print ("pbr 文件被拦截 -->"+name)
elif filetype == 'pbw':
print ("pbw 文件被拦截 -->"+name)
elif filetype == 'pbt':
print ("pbt 文件被拦截 -->"+name)
else:
print(name[len(name)-3:len(name)])
out.write(name+'\n')
out.close()
O código-fonte run.py é o seguinte:
#encoding: utf-8
import os
import sys
import shutil
import time
if __name__ == "__main__":
curdir = os.getcwd()
namefile = "names.txt"
if os.path.isfile(namefile):
print("文件列表以检测到,正在读取....")
else:
print("未找到names.txt文件,程序结束")
##sys.exit()
tag = ''
while ( not os.path.isdir(tag)):
tag = raw_input('输入目标路径:')
if not os.path.isdir(tag):
os.mkdir(tag)
tag = tag+'\\'
nfile = open(namefile)
for line in nfile:
src = line[:-1]
shutil.copy(src,tag)
print(src+' 复制到 '+tag)
nfile.close