여러 중첩 폴더에서 알려진 파일 이름의 내용이나 파일을 추출하는 방법은 무엇입니까? 이 기사는 중첩된 폴더 아래에 지정된 파일 작업의 소스 코드 예제를 추출하는 Python 에 관한 것입니다 .
버전: python2.6.6
환경: window XP
Python 코드 작성 아이디어:
먼저 두 개의 py 파일을 필요한 폴더 아래에 놓고 filelist.py를 먼저 실행한 다음 run.py를 실행합니다. 이 두 파일의 기능은 다음과 같습니다:
filelist.py:
현재 폴더 아래의 파일 목록을 가져와 names.txt 파일을 생성합니다. 이 파일을 수동으로 수정하여 추출할 파일 목록을 설정할 수 있습니다.
run.py:
실행 후 대상 폴더를 입력하라는 메시지가 표시되고, 프로그램은 names.txt를 기반으로 지정된 디렉터리로 파일을 자동 전송합니다.
filelist.py 파일 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()
run.py의 소스코드는 다음과 같습니다.
#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