遍历文件夹下的所有文件并复制到制定文件夹(自己手写)

合集下载

使用cmd命令遍历文件夹并对文件进行指定操作

使用cmd命令遍历文件夹并对文件进行指定操作

使⽤cmd命令遍历⽂件夹并对⽂件进⾏指定操作
我们使⽤命令来遍历指定的⽂件夹。

forfiles命令的概览:
这是msdn中关于forfiles命令作⽤的说明概览,下⾯我们看⼀下具体的forfiles命令的语法:
备注:在forfiles命令的/c参数中可以使⽤如下变量:
通过上⾯的说明我们可以清楚的看到使⽤forfiles命令可以很⽅便的对⽂件或⽂件夹夹进⾏操作,
例如我们要对某个⽂件夹进⾏遍历并删除指定类型的⽂件:
例如在我的电脑的e盘test⽂件夹中有下⾯的⽂件,我想遍历⽂件夹内的⽂件并删除每⼀个⽂件,我们就可以这样来进⾏处理:
forfiles /p e:\test /c "cmd /c erase @path"
这⾥的 e:\test是我们要操作的⽂件夹,/c后⾯是要对⽂件夹中的每⼀个⽂件执⾏的操作。

上⾯的⽅法是遍历⽂件夹,删除了该⽂件夹内的所有⽂件,当然你可以直接⽤del命令去删除指定的⽂件夹内的⽂件,但是通过forfiles命令你可以对⽂件进⾏更复杂的操作,例如筛选指定⽇期的⽂件,或者批量为⽂件重命名等。

python编程之循环遍历文件夹下面的文件,以及获取文件夹名称

python编程之循环遍历文件夹下面的文件,以及获取文件夹名称

python编程之循环遍历⽂件夹下⾯的⽂件,以及获取⽂件夹名

要求
1、遍历⽂件夹ddd下⾯所有的⽂件
2、并且获取所有⽂件所在⽂件夹的名称
解决⽅案
思路:先获取某个路径下⾯的其他路径,然后循环遍历,判断这个路径到底是⽂件路径还是⽂件夹路径,如果是⽂件路径,直接添加到集合⾥⾯,如果是⽂件夹的话,就递归循环遍历;
import os
##第⼀步、加载⽂件,获取⽂件路径以及标签
train_path="./data/ddd"
allpath=[]
lllables=[]
def get_lableandwav(path,dir):
dirs = os.listdir(path)
for a in dirs:
print(a)
print(os.path.isfile(path+"/"+a))
if os.path.isfile(path+"/"+a):
allpath.append(dirs)
if dir!="":
lllables.append(dir)
else:
get_lableandwav(str(path)+"/"+str(a),a)
##循环遍历这个⽂件夹
return allpath,lllables
##第⼀步、加载⽂件,获取⽂件路径以及标签
[allpath,lllables]=get_lableandwav(train_path,"")
print(allpath)
print("----------")
print(lllables)。

使用Python实现文件递归遍历的三种方式

使用Python实现文件递归遍历的三种方式

使⽤Python实现⽂件递归遍历的三种⽅式今天有个脚本需要遍历获取某指定⽂件夹下⾯的所有⽂件,我记得很早前也实现过⽂件遍历和⽬录遍历的功能,于是找来看⼀看,嘿,不看不知道,看了吓⼀跳,原来之前我竟然⽤了这么搓的实现。

先发出来看看:def getallfiles(dir):"""遍历获取指定⽂件夹下⾯所有⽂件"""if os.path.isdir(dir):filelist = os.listdir(dir)for ret in filelist:filename = dir + "\\" + retif os.path.isfile(filename):print filenamedef getalldirfiles(dir, basedir):"""遍历获取所有⼦⽂件夹下⾯所有⽂件"""if os.path.isdir(dir):getallfiles(dir)dirlist = os.listdir(dir)for dirret in dirlist:fullname = dir + "\\" + dirretif os.path.isdir(fullname):getalldirfiles(fullname, basedir)我是⽤了 2 个函数,并且每个函数都⽤了⼀次 listdir,只是⼀次⽤来过滤⽂件,⼀次⽤来过滤⽂件夹,如果只是从功能实现上看,⼀点问题没有,但是这…太不优雅了吧。

开始着⼿优化,⽅案⼀:def getallfiles(dir):"""使⽤listdir循环遍历"""if not os.path.isdir(dir):print dirreturndirlist = os.listdir(dir)for dirret in dirlist:fullname = dir + "\\" + dirretif os.path.isdir(fullname):getallfiles(fullname)else:print fullname从上图可以看到,我把两个函数合并成了⼀个,只调⽤了⼀次 listdir,把⽂件和⽂件夹⽤ if~else~ 进⾏了分⽀处理,当然,⾃我调⽤的循环还是存在。

遍历某个文件夹下所有的文件

遍历某个文件夹下所有的文件

遍历某个⽂件夹下所有的⽂件通过递归遍历所有的⽬录+⼦⽬录(这个问题我经常会搞不明⽩,希望⼤家能⽤的清楚)
1、直接显⽰所有⽂件
def showAllFiles(path):
list_all =os.listdir(path)
for one in list_all:
one_path =os.path.join(path,one)
if os.path.isfile(one_path):
print(one) #只显⽰⽂件名称
# print(one_path) #如果需要连带路径⼀起显⽰
else:
showAllFiles(one_path) #如果当前⼦⽂件是⽬录,将⽬录重新进⾏判断
2、如果需要返回⼀个list
对上⾯的⽅法进⾏改造,但是有个注意的点,list_file=[]这个空的list_file必须在⽅法的外部,
list_file =[]
def showAllFiles1(path,list_file):
#list_file =[] #不能放在内部,否则如果⼦⽂件是⽬录,那么重新调⽤showAllFile1()时⼜会初始化为空,前⾯的数据就没有了 list_all =os.listdir(path)
for one in list_all:
one_path =os.path.join(path,one)
if os.path.isfile(one_path):
list_file.append(one)
else:
showAllFiles1(one_path) #如果当前⼦⽂件是⽬录,将⽬录重新进⾏判断
return list_file
⽅法2: os.path.walk()。

找遍某个文件夹下的文档并将指定页复制

找遍某个文件夹下的文档并将指定页复制

WORD VBA的操作实例:功能:打开某一个文件夹下的多个word文档,指定某页内容复制,并粘贴到新建的文档并且命名新文档中。

Sub openclose ()Const wdNumberOfPagesInDocument = 4Const wdGoToPage = 1Const wdGoToAbsolute = 1Dim oRng As RangeDim f, oDocTemp As DocumentDim mm As IntegerDim mypath As StringDim myfile As StringDim arr(400) As StringDim cot As Integermm = 1mypath = Word.ActiveDocument.Path '活动文档的路径位置myfile = Dir(mypath & "\")cot = cot + 1arr(cot) = myfileDo While myfile <> ""myfile = DirIf myfile = "" ThenExit DoEnd Ifcot = cot + 1arr(cot) = myfile '将搜索到的文件的名字存在数组中LoopDim wordapp As ObjectSet wordapp = CreateObject("word.Application")Application.DisplayAlerts = FalseFor i = 1 To cotFileName = mypath & "\" & arr(i)If FileName = False Then Exit SubIf FileName <> mypath & "\" & ThenSet f = wordapp.Documents.Open(FileName) '打开一个文档。

两种方法使用VC遍历文件夹下所有文件和文件夹

两种方法使用VC遍历文件夹下所有文件和文件夹

两种方法使用VC遍历文件夹下所有文件和文件夹1.使用网上最普通的方法find(char * lpPath){char szFind[MAX_PATH];WIN32_FIND_DATA FindFileData;strcpy(szFind,lpPath);strcat(szFind,"*.*");HANDLE hFind=::FindFirstFile(szFind,&FindFileData);if(INVALID_HANDLE_VALUE == hFind) return;while(TRUE){if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){if(FindFileData.cFileName[0]!='.'){strcpy(szFile,lpPath);strcat(szFile,"");strcat(szFile,FindFileData.cFileName);find(szFile);}}else{cout << FindFileData.cFileName;}if(!FindNextFile(hFind,&FindFileData)) break;}FindClose(hFind);}2.利用CFileFind类较简洁的实现该功能void CModelDlg::FindBmpFile(CString strFoldername){CString m_cstrFileList="";CFileFind tempFind;BOOL bFound; //判断是否成功找到文件bFound=tempFind.FindFile(strFoldername + "\\*.*"); /修改" "内内容给限定查找文件类型CString strTmp; //如果找到的是文件夹存放文件夹路径while(bFound) //遍历所有文件{bFound=tempFind.FindNextFile(); //第一次执行FindNextFile 是选择到第一个文件,以后执行为选择//到下一个文件if(!tempFind.IsDots()) continue; //如果找到的是返回上层的目录则结束本次查找if(tempFind.IsDirectory()) //找到的是文件夹,则遍历该文件夹下的文件{strTmp="";strTmp=tempFind.GetFilePath();FindFile(strTmp);}else{strTmp=tempFind.GetFileName(); //保存文件名,包括后缀名// 在此处添加对找到文件的处理}}tempFind.Close(); return;}。

c 遍历文件夹下所有文件的多种方法

c 遍历文件夹下所有文件的多种方法

c 遍历文件夹下所有文件的多种方法在C语言中,遍历文件夹下所有文件有多种方法,以下是其中几种常见的方法:1. 使用操作系统提供的API大多数操作系统都提供了遍历文件夹的API,例如Windows平台的FindFirstFile和FindNextFile函数,Linux平台的opendir和readdir函数等。

这些API可以遍历文件夹下的所有文件和子文件夹,并返回文件的信息。

以下是一个使用Linux平台opendir和readdir函数的示例代码:```cinclude <>include <>int main() {DIR dir;struct dirent ent;char path[1035];// 打开当前目录dir = opendir(".");if (dir != NULL) {// 遍历目录下的所有文件和子文件夹 while ((ent = readdir(dir)) != NULL) { printf("%s\n", ent->d_name);}closedir(dir);} else {// 打开目录失败perror("");return 1;}return 0;}```2. 使用第三方库除了操作系统提供的API外,还有一些第三方库可以方便地遍历文件夹下的所有文件,例如GLib库中的g_directory_list_all函数。

这些库通常提供了更高级的遍历功能,例如支持递归遍历子文件夹、过滤特定类型的文件等。

3. 使用命令行工具的输出除了编程方式外,还可以使用命令行工具来遍历文件夹下的所有文件,例如Windows平台的dir命令和Linux平台的ls命令。

这些命令可以输出文件夹下的所有文件和子文件夹,并将结果输出到标准输出流中。

可以将命令的输出通过管道传递给C程序的标准输入流中,然后使用C语言的输入输出函数来解析输出结果。

c语言遍历指定文件夹,c遍历一个文件夹下及所有文件包括子文件夹.doc

c语言遍历指定文件夹,c遍历一个文件夹下及所有文件包括子文件夹.doc

c语⾔遍历指定⽂件夹,c遍历⼀个⽂件夹下及所有⽂件包括⼦⽂件夹.docc遍历⼀个⽂件夹下及所有⽂件包括⼦⽂件夹c#遍历⼀个⽂件夹下的所有⽂件包括⼦⽂件夹using System; using System.IO;class ListAllFilesDemo { public static void Main() { Console.Write( "请输⼊要查询的⽬录: "); string dir = Console.ReadLine(); try { ListFiles(new DirectoryInfo(dir)); } catch(IOException e) { Console.WriteLine(e.Message); } }public static void ListFiles(FileSystemInfo info) { if (!info.Exists)return;else{DirectoryInfo dirInfo = info as DirectoryInfo;if (dirInfo != null){foreach (var file in dirInfo.GetFileSystemInfos()){FileInfo fileInfo = file as FileInfo;if (fileInfo != null)Console.WriteLine(fileInfo.FullName);else{listFiles(file as DirectoryInfo);}}}}} }C#中遍历⽬录下的⽬录的⽂件(⼆)1、遍历⼀个⽬录下的全部⽬录,要⽤到System.IO.DirectoryInfo 类的GetDirectories⽅法:DirectoryInfo dir = new DirectoryInfo(@"c:\"); foreach(DirectoryInfo dChild in dir.GetDirectories("*")) {//如果⽤GetDirectories("ab*"),那么全部以ab开头的⽬录会被显⽰ Response.Write( + "");//打印⽬录名 Response.Write(dChild.FullName + "");//打印路径和⽬录名 }2、遍历⼀个⽬录下的全部⽂件,要⽤到System.IO.DirectoryInfo 类的GetFiles⽅法: DirectoryInfo dir = newDirectoryInfo(@"c:\"); foreach(DirectoryInfo dChild in dir.GetFiles("*")) {//如果⽤GetFiles("*.txt"),那么全部txt⽂件会被显⽰ Response.Write( + "");//打印⽂件名 Response.Write(dChild.FullName + "");//打印路径和⽂件名 }如何获取指定⽬录包含的⽂件和⼦⽬录1. DirectoryInfo.GetFiles():获取⽬录中(不包含⼦⽬录)的⽂件,返回类型为FileInfo[],⽀持通配符查找;2.DirectoryInfo.GetDirectories():获取⽬录(不包含⼦⽬录)的⼦⽬录,返回类型为DirectoryInfo[],⽀持通配符查找; 3. DirectoryInfo. GetFileSystemInfos():获取指定⽬录下(不包含⼦⽬录)。

文件夹中批量复制文件的方法

文件夹中批量复制文件的方法

文件夹中批量复制文件的方法方法一:使用命令行方式1.打开命令提示符(Windows)或终端(Mac/Linux)。

2.使用cd命令进入到要复制的文件夹目录。

例如,如果要将文件复制到名为"目标文件夹"的文件夹中,可以使用以下命令进入该文件夹:cd 目标文件夹。

3.使用dir /s *.* /b >1.txt命令列出当前目录下所有文件和文件夹的名称,并将结果保存到名为"1.txt"的文件中。

/s参数表示显示所有子目录中的文件,/b参数表示只显示文件名。

4.使用copy /b <源文件路径>+<目标文件路径>命令批量复制文件。

例如,如果要将"源文件夹"中的所有文件复制到"目标文件夹"中,可以使用以下命令:copy /b <源文件夹路径>* <目标文件夹路径>。

注意,这里的<源文件夹路径>和<目标文件夹路径>需要替换为实际的文件夹路径。

方法二:使用工具方式1.下载并安装Total Commander软件。

2.打开Total Commander软件,并进入要复制文件的文件夹目录。

3.在软件界面上方的菜单栏中,选择"编辑" -> "批量操作"。

4.在弹出的"批量操作"对话框中,选择"添加任务",然后选择要复制的文件或文件夹。

5.在下方的操作列表中,选择"复制",并设置目标文件夹路径。

6.点击"开始"按钮,执行批量复制操作。

方法三:使用第三方工具除了上述两种方法外,还可以使用一些第三方工具进行批量复制操作。

例如,"Batch Copy"等工具可以帮助您快速批量复制文件到指定目录。

无论使用哪种方法,都请确保在执行批量复制操作之前备份重要文件,以防意外情况发生。

C++遍历文件夹下所有文件的多种方法

C++遍历文件夹下所有文件的多种方法

C++遍历⽂件夹下所有⽂件的多种⽅法为数不多的好⽤的代码,遍历⽂件夹获取所有⼦⽂件名,"filespec"可⽤通配符“*?”。

注意如果⽤相对路径的话,获取所有⽂件名后应再调⽤SetInitDir将初始⽬录改为当前⽬录,否则中间⽣成的⽂件都会放在之前的“InitDir”内。

C/C++遍历⽂件夹感觉真是很不好⽤,建议还是使⽤C/C++做单任务处理,然后通过脚本语⾔实现遍历⽐较合理。

CBrowseDir.h#include <io.h>#include <stdlib.h>#include <direct.h>#include <iostream>#include <string>#include <vector>using namespace std;class CBrowseDir{protected://存放初始⽬录的绝对路径,以'\'结尾char m_szInitDir[_MAX_PATH];public://缺省构造器CBrowseDir();//设置初始⽬录为dir,如果返回false,表⽰⽬录不可⽤bool SetInitDir(const char *dir);//开始遍历初始⽬录及其⼦⽬录下由filespec指定类型的⽂件//filespec可以使⽤通配符 * ?,不能包含路径。

//如果返回false,表⽰遍历过程被⽤户中⽌bool BeginBrowse(const char *filespec);vector<string> BeginBrowseFilenames(const char *filespec);protected://遍历⽬录dir下由filespec指定的⽂件//对于⼦⽬录,采⽤迭代的⽅法//如果返回false,表⽰中⽌遍历⽂件bool BrowseDir(const char *dir,const char *filespec);vector<string> GetDirFilenames(const char *dir,const char *filespec);//函数BrowseDir每找到⼀个⽂件,就调⽤ProcessFile//并把⽂件名作为参数传递过去//如果返回false,表⽰中⽌遍历⽂件//⽤户可以覆写该函数,加⼊⾃⼰的处理代码virtual bool ProcessFile(const char *filename);//函数BrowseDir每进⼊⼀个⽬录,就调⽤ProcessDir//并把正在处理的⽬录名及上⼀级⽬录名作为参数传递过去//如果正在处理的是初始⽬录,则parentdir=NULL//⽤户可以覆写该函数,加⼊⾃⼰的处理代码//⽐如⽤户可以在这⾥统计⼦⽬录的个数virtual void ProcessDir(const char *currentdir,const char *parentdir);};CBrowseDir.cpp#include "CBrowseDir.h"CBrowseDir::CBrowseDir(){//⽤当前⽬录初始化m_szInitDirgetcwd(m_szInitDir,_MAX_PATH);//如果⽬录的最后⼀个字母不是'\',则在最后加上⼀个'\'int len=strlen(m_szInitDir);if (m_szInitDir[len-1] != '\\')strcat(m_szInitDir,"\\");}bool CBrowseDir::SetInitDir(const char *dir){return false;//判断⽬录是否存在if (_chdir(m_szInitDir) != 0)return false;//如果⽬录的最后⼀个字母不是'\',则在最后加上⼀个'\'int len=strlen(m_szInitDir);if (m_szInitDir[len-1] != '\\')strcat(m_szInitDir,"\\");return true;}vector<string> CBrowseDir::BeginBrowseFilenames(const char *filespec) {ProcessDir(m_szInitDir,NULL);return GetDirFilenames(m_szInitDir,filespec);}bool CBrowseDir::BeginBrowse(const char *filespec){ProcessDir(m_szInitDir,NULL);return BrowseDir(m_szInitDir,filespec);}bool CBrowseDir::BrowseDir(const char *dir,const char *filespec){_chdir(dir);//⾸先查找dir中符合要求的⽂件long hFile;_finddata_t fileinfo;if ((hFile=_findfirst(filespec,&fileinfo)) != -1){do{//检查是不是⽬录//如果不是,则进⾏处理if (!(fileinfo.attrib & _A_SUBDIR)){char filename[_MAX_PATH];strcpy(filename,dir);strcat(filename,);cout << filename << endl;if (!ProcessFile(filename))return false;}} while (_findnext(hFile,&fileinfo) == 0);_findclose(hFile);}//查找dir中的⼦⽬录//因为在处理dir中的⽂件时,派⽣类的ProcessFile有可能改变了//当前⽬录,因此还要重新设置当前⽬录为dir。

Shell遍历文件夹中所有文件并进行相关操作

Shell遍历文件夹中所有文件并进行相关操作

Shell遍历⽂件夹中所有⽂件并进⾏相关操作遍历⽂件夹中所有⽂件,获取⽂件名,并对指定⽂件做相应操作#!/bin/bashdir=$(ls -l /usr/ |awk'/^d/ {print $NF}')for file in $dirdoif [[ $(echo $file | grep"AQSS") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQSS/$1/elif [[ $(echo $file | grep"AQCS") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQCS/$1/elif [[ $(echo $file | grep"AQKJ") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQKJ/$1/elif [[ $(echo $file | grep"AQMC") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQMC/$1/elif [[ $(echo $file | grep"AQKC") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQKC/$1/elif [[ $(echo $file | grep"AQFZ") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQFZ/$1/elif [[ $(echo $file | grep"AQGX") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQGX/$1/elif [[ $(echo $file | grep"AQDQ") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQDQ/$1/elif [[ $(echo $file | grep"AQLJ") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQLJ/$1/elif [[ $(echo $file | grep"AQMT") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQMT/$1/elif [[ $(echo $file | grep"AQBJ") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQBJ/$1/elif [[ $(echo $file | grep"AQKY") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQKY/$1/elif [[ $(echo $file | grep"AQYC") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQYC/$1/elif [[ $(echo $file | grep"AQKD") != "" ]] thenhdfs dfs -put $file /origin_data/aqjc/log/topic_AQKD/$1elseecho $filefidone。

Python遍历指定文件及文件夹的方法

Python遍历指定文件及文件夹的方法

Python遍历指定⽂件及⽂件夹的⽅法本⽂实例讲述了Python遍历指定⽂件及⽂件夹的⽅法。

分享给⼤家供⼤家参考。

具体如下:初次编写:import osdef searchdir(arg,dirname,names):for filespath in names:open ('c:\\test.txt','a').write('%s\r\n'%(os.path.join(dirname,filespath)))if __name__=="__main__":paths="g:\\"os.path.walk(paths,searchdir,())做了修改,添加了⽂件属性# -*- coding: cp936 -*-import os,time#将⽂件属性中的时间改为‘2011-1-12 00:00:00格式'def formattime(localtime):endtime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(localtime))return endtimedef searchdir(arg,dirname,names):for filespath in names:#得到⽂件路径fullpath=os.path.join(dirname,filespath)#得到⽂件属性statinfo=os.stat(fullpath)#⽂件⼤⼩sizefile=statinfo.st_size#创建时间creattime=formattime(statinfo.st_ctime)#修改时间maketime=formattime(statinfo.st_mtime)#浏览时间readtime=formattime(statinfo.st_atime)#判断是⽂件夹还是⽂件if os.path.isdir(fullpath):filestat='DIR'else:filestat='FILE'open ('c:\\test.txt','a').write('【%s】路径:%s ⽂件⼤⼩(B):%s 创建时间:%s 修改时间:%s 浏览时间:%s\r\n'%(filestat,fullpath,sizefile,creattime,maketime,readtime)) if __name__=="__main__":paths="g:\\"os.path.walk(paths,searchdir,())希望本⽂所述对⼤家的Python程序设计有所帮助。

根据文件名将文件放入对应文件夹的方法

根据文件名将文件放入对应文件夹的方法

根据文件名将文件放入对应文件夹的方法在计算机操作中,我们常常需要将大量文件分类存放以方便管理。

如果手动将文件一个一个地移动到对应的文件夹中,会费时费力。

本文将介绍一种将文件根据文件名自动归类到对应文件夹的方法。

1. 利用Python编写脚本Python是一种非常流行的编程语言,可以编写自动化脚本,实现将文件自动归类。

以下是实现方法:(1)首先需要安装Python。

在官网下载对应版本的Python,安装后在命令行中输入“python”,如果出现版本号,说明安装成功。

(2)新建一个文本文件,将其命名为sort_files.py。

(3)在sort_files.py中添加以下代码:```import osimport shutil# 要整理的文件所在的目录folder_path = "D:\\Downloads\\"# 循环遍历该目录下的所有文件for filename in os.listdir(folder_path):# 如果文件是文件夹,则跳过if os.path.isdir(filename):continue# 根据文件名来判断所属的文件夹suffix = filename.split('.')[-1]if suffix == "jpg" or suffix == "jpeg" or suffix == "png": dest_folder_path = folder_path + "images\\"elif suffix == "doc" or suffix == "docx" or suffix == "pdf":dest_folder_path = folder_path + "documents\\"elif suffix == "mp3" or suffix == "wav" or suffix == "flac":dest_folder_path = folder_path + "music\\"else:dest_folder_path = folder_path + "others\\"# 如果文件夹不存在,则创建if not os.path.exists(dest_folder_path):os.makedirs(dest_folder_path)# 移动文件到相应的文件夹中shutil.move(folder_path + filename, dest_folder_path + filename)```(4)在代码中,我们首先定义了要整理的文件所在的目录,然后使用os.listdir()函数遍历该目录下的所有文件。

Linux_shell脚本_遍历文件夹下所有文件

Linux_shell脚本_遍历文件夹下所有文件

Linux_shell脚本_遍历文件夹下所有文件Linux_shell脚本_遍历⽂件夹下所有⽂件参考:实现:从给定⽂录树中grep出含制定字符串的⽂,并给出所在路径代码如下所⽂:#!/bin/sh -if [ $# -ne 2 ]then echo "usage traverse <dir> <str>"exitfi{function ergodic(){for file in ` ls $1`doif [ -d $1"/"$file ] #如果 file存在且是⽂个⽂录则为真thenergodic $1"/"$file $2elselocal path=$1"/"$file #得到⽂件的完整的⽂录local name=$file #得到⽂件的名字if [[ `cat $path | grep $2` ]]then echo ""echo LOC:$pathficat –n $path | grep $2fidone}}ergodic $1 $2效果图:还有⽂种⽂法,可以直接调⽂find指令完成查找⽂件,将结果输出⽂grep(参考APUE(3),p190)对于find,我们使⽂选项-type f限制输出列表只包含普通⽂件。

这样做的⽂的是,grep命令不能在⽂录中搜索模式,我们也想避免不必要的出错消息。

find . -type f -print | xargs grep STUps:如果要想在压缩⽂件内寻找⽂本⽂段,可以使⽂:find . -type f -print | xargs bzgrep STUdone。

Python遍历文件夹和读写文件的实现方法

Python遍历文件夹和读写文件的实现方法

Python遍历⽂件夹和读写⽂件的实现⽅法需求分析1、读取指定⽬录下的所有⽂件2、读取指定⽂件,输出⽂件内容3、创建⼀个⽂件并保存到指定⽬录实现过程Python写代码简洁⾼效,实现以上功能仅⽤了40⾏左右的代码~ 昨天⽤Java写了⼀个写⼊、创建、复制、重命名⽂件要将近60⾏代码;不过简洁的代价是牺牲了⼀点点运⾏速度,但随着硬件性能的提升,运⾏速度的差异会越来越⼩,直到⼈类⽆法察觉~#-*- coding: UTF-8 -*-'''1、读取指定⽬录下的所有⽂件2、读取指定⽂件,输出⽂件内容3、创建⼀个⽂件并保存到指定⽬录'''import os# 遍历指定⽬录,显⽰⽬录下的所有⽂件名def eachFile(filepath):pathDir = os.listdir(filepath)for allDir in pathDir:child = os.path.join('%s%s' % (filepath, allDir))print child.decode('gbk') # .decode('gbk')是解决中⽂显⽰乱码问题# 读取⽂件内容并打印def readFile(filename):fopen = open(filename, 'r') # r 代表readfor eachLine in fopen:print "读取到得内容如下:",eachLinefopen.close()# 输⼊多⾏⽂字,写⼊指定⽂件并保存到指定⽂件夹def writeFile(filename):fopen = open(filename, 'w')print "\r请任意输⼊多⾏⽂字"," ( 输⼊ .号回车保存)"while True:aLine = raw_input()if aLine != ".":fopen.write('%s%s' % (aLine, os.linesep))else:print "⽂件已保存!"breakfopen.close()if __name__ == '__main__':filePath = "D:\\FileDemo\\Java\\myJava.txt"filePathI = "D:\\FileDemo\\Python\\pt.py"filePathC = "C:\\"eachFile(filePathC)readFile(filePath)writeFile(filePathI)⼯欲善其事最近尝试了⼏个常见的Python IDE,发现Subline tx2对中⽂的⽀持不好, NotePad++ 代码⾃定义颜⾊不⽅便。

Excel学习笔记001:遍历指定文件夹下的所有文件名并存入指定位置

Excel学习笔记001:遍历指定文件夹下的所有文件名并存入指定位置
sr.LookIn = 'E:2009-2010学年历次考试2009年11月份考试-学校统考补考名单' '注意路径,换成你实际的路径
sr.Filename = '*.*' '搜索所有文件
sr.Execute '执行搜索
Cells.Delete '表格清空
For i = 1 To sr.FoundFiles.Count
运行后返回的结果包含完整的路径名若只需要文件名还需要在表格中执行下列函数
Excel学习笔记001:遍历指定文件夹下的所有文件名并存入指定位置
Sub 遍历指定文件夹下的所有文件名(#39;定义一个文件搜索对象
Set sr = Application.FileSearch
Cells(i, 1) = sr.FoundFiles(i) '每一行第一列填写一个文件名
Next
End Sub
运行后返回的结果包含完整的路径名,若只需要文件名,还需要在表格中执行下列函数
=RIGHT(A1,LEN(A1)-FIND('#',SUBSTITUTE(A1,'','#',LEN(A1)-LEN(SUBSTITUTE(A1,'',)))))

php遍历目录与文件夹的多种方法详解

php遍历目录与文件夹的多种方法详解

php遍历⽬录与⽂件夹的多种⽅法详解遍历⽬录或遍历⽬录下指定类型的⽂件,这是每⼀个童鞋在写程序的时候难免会⽤到的。

PHP本⾝也提供了很多灰常有⽤的函数,正确地使⽤它们,不会有错滴。

下⾯就我个⼈学习过程中的⼀些总结,希望对想学PHP的童鞋有所帮助。

本函数可以列出指定⽬录下所有的⽂件(包括⼦⽬录下的)复制代码代码如下:function getfiles($path){foreach(scandir($path) as $afile){if($afile=='.'||$afile=='..') continue;if(is_dir($path.'/'.$afile)){getfiles($path.'/'.$afile);} else {echo $path.'/'.$afile.'<br />';}}} //简单的demo,列出当前⽬录下所有的⽂件getfiles(__DIR__);scandir() 是返回指定⽬录下所有的⽂件和⽬录组成的数组,在PHP中,还提供了⼀个灰常强⼤的函数glob(),glob()有2个参数,⾄于第2个参数是可选的,稍后再讲。

直接来看,⽤glob()怎么遍历⽬录的。

可以看出,glob()返回的内容中已经过滤掉了'.'和'..',其中*表⽰遍历⽬录下所有⽂件。

相应的,如果改为*.txt,则会遍历⽬录下所的txt⽂件。

是不是很⽅便呢?它的⽅便之处可不⽌这⼀点,据元芳说,这⾥⾯还藏着⼀个天⼤的秘密,是什么呢?以后再说,有兴趣的话,可以给我留⾔交流。

复制代码代码如下:function getfiles($path){foreach(glob($path) as $afile){if(is_dir($afile)){ getfiles($afile.'/*'); } else { echo $afile.'<br />'; }}} //简单的demo,列出当前⽬录下所有的⽂件getfiles(__DIR__);0既然说⽤ *.txt,就会遍历⽬录下所的txt⽂件,那如果我想让它同时遍历某⼏种格式的⽂件呢?怎么办?肯定有童鞋想到⽤数组了,然后很快的写出来替换进去{*.txt,*.jpg,*.zip,...},当然也很快地发现,程序返回false,什么都得不到。

C#指定文件夹下面的所有内容复制到目标文件夹下面

C#指定文件夹下面的所有内容复制到目标文件夹下面
foreach(stringfile infileList)
{
//先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(Directory.Exists(file))
CopyDir(file, aimPath + Path.GetFileName(file));
//否则直接Copy文件
else
File.Copy(file, aimPath + Path.GetFileName(file), true);
}
}
catch(Exception ee)
{
thrownewException(ee.ToString());
}
}
aimPath += Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!Directory.Exists(aimPath))
Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27ห้องสมุดไป่ตู้
28
29
30
31
32
33
34
35
36
/// <summary>
/// 指定文件夹下面的所有内容copy到目标文件夹下面

Python3批量移动指定文件到指定文件夹方法示例

Python3批量移动指定文件到指定文件夹方法示例

Python3批量移动指定⽂件到指定⽂件夹⽅法⽰例引⾔某⼈需求:以某excel中姓名信息为名建⽴⼀系列⽂件夹,分别将四个⽂件夹中与⼈名对应的⽂件汇总到该⼈名对应的⽂件夹中,共近200⼈,⼿⼯处理费时费⼒。

需求分解:从excel中提取代号index和姓名信息name以index_name格式批量建⽴⽂件夹namefolder分别遍历四个⽂件夹及其⼦⽂件夹,将其中“⽂件名filename中包含姓名name”的⽂档移动到该⼈对应的新建的⽂件夹namefolder中excel内容:处理前:处理后:功能实现⽐较容易,权当记录。

环境:Python3.6+macOS10.12.5代码# -*- coding: utf-8 -*-import osimport shutilimport xlrdimport string### 创建多层⽬录def mkdirs(path):# 去除⾸位空格path = path.strip()# 去除尾部 \ 符号path = path.rstrip("\\")# 判断路径是否存在# 存在 True# 不存在 FalseisExists = os.path.exists(path)# 判断结果if not isExists:# 创建⽬录操作函数os.makedirs(path)# 如果不存在则创建⽬录print(path + ' 创建成功')return Trueelse:# 如果⽬录存在则不创建,并提⽰⽬录已存在print(path + ' ⽬录已存在')return Falsedef search_file(path, filename, newpath):queue = []queue.append(path);while len(queue) > 0:tmp = queue.pop(0)if (os.path.isdir(tmp)):#如果该路径是⽂件夹for item in os.listdir(tmp):#遍历该路径中⽂件和⽂件夹queue.append(os.path.join(tmp, item))#将所得路径加⼊队列queueelif (os.path.isfile(tmp)):#如果该路径是⽂件name = os.path.basename(tmp) # 获取⽂件名dirname = os.path.dirname(tmp) # 获取⽂件⽬录full_path = os.path.join(dirname, name) # 将⽂件名与⽂件⽬录连接起来,形成完整路径des_path = newpath+'/'+path+'_'+name #⽬标路径,将该⽂件夹信息添加进最后的⽂件名中 if filename in name:#匹配符合条件的⽂件,也可⽤if(name.find(filename)!=-1):shutil.move(full_path, des_path)#移动⽂件到⽬标路径(移动+重命名)if __name__ == '__main__':#打开excel⽂件data=xlrd.open_workbook('名单.xlsx')#获取第⼀张⼯作表(通过索引的⽅式)table=data.sheet_by_index(0)#datalist⽤来存放数据datalist_UNIQID=[]datalist_NAME=[]#将table中第⼀⾏的数据读取并添加到data_list中datalist_UNIQID.extend(table.col_values(0))datalist_NAME.extend(table.col_values(2))#foldname = [a+'_'+b for a, b in zip(datalist_UNIQID,datalist_NAME)]dir_tjbg='zzz报告'dir_fsgz='xxx证书'dir_hbpx='yyy证书'dir_ykfs='xyz证书'#打印出第⼀⾏的全部数据for index, name in zip(datalist_UNIQID, datalist_NAME):foldername=index+'_'+name.strip()#print(foldername)mkdirs(foldername)search_file(dir_tjbg,name.strip(),foldername)search_file(dir_fsgz,name.strip(),foldername)search_file(dir_hbpx,name.strip(),foldername)search_file(dir_ykfs,name.strip(),foldername)备忘1. 同步遍历两个listl1 = [2,2,2,2]l2 = [3,3,3,3]prod = [a*b for a, b in zip(l1,l2)]print prod# [6, 6, 6, 6]add = [a+b for a, b in zip(l1,l2)]print add# [5, 5, 5, 5]2. ⽂件夹操作import osimport shutilos.getcwd() # 获取当前⼯作⽬录,⾮脚本⽬录os.listdir() # 返回指定⽬录下的所有⽂件和⽬录,⾮递归os.remove() # 删除⽂件os.removedirs() #删除⽬录os.path.isfile() # 检验给出的路径是否是⼀个⽂件os.path.isdir() # 检验给出的路径是否是⼀个⽬录os.path.isabs() # 判断是否是绝对路径os.path.exists() # 检验给出的路径是否真实存在os.path.split() # 返回⼀个路径的⽬录名和⽂件名os.path.splitext() # 分离⽂件扩展名os.path.dirname() # 获取⽂件路径名os.path.basename() # 获取⼀个绝对路径下的⽂件名os.system() # 运⾏shell命令os.rename(old,new) # 重命名⽂件或⽬录os.makedirs(r"c:\python\test") # 创建多级⽬录os.mkdir("test") # 创建单个⽬录os.exit() # 终⽌当前进程os.path.getsize(filename) # 获取⽂件⼤⼩os.mknod("test.txt") # 创建空⽂件shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是⽂件shutil.copytree("olddir","newdir") # olddir和newdir都只能是⽬录,且newdir必须不存在shutil.move("oldpos","newpos") # 移动⽂件或⽬录shutil.rmtree("dir") # 删除⽬录,与os.removedirs()相同os.path.join(“home”, "me", "mywork") # 路径连接参考Python3 操作Excel⽂件(读写)Python操作excel的⼏种⽅式–xlrd、xlwt、openpyxl(部分函数不适⽤于python3,如column_values改为col_values) Python中zip()函数⽤法举例python脚本初体验之⼀键移动⾃定格式⽂件每天⼀个python模块之⽂件⽬录操作-os以及shutil模块总结以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。

如何遍历文件夹及其子文件夹中所有指定的文件?

如何遍历文件夹及其子文件夹中所有指定的文件?

如何遍历文件夹及其子文件夹中所有指定的文件?本代码可以在指定文件夹及其所有子文件夹中,查找全部指定类型的文件(如*.xls*),或者与指定类型匹配的文件(如.xls),也可以查找单个文件(如 ABC.doc、ABC.txt)。

代码来自ExcelHome网站,本人收录时作了部分修改。

经测试,查找D:\所有Excel文件与运行DOS命令:dir d:\*.xls* /s/b/a-d>d:\1.txtstart d:\1.txt结果一致。

代码如下:Sub FindAllFiles()'在指定文件夹及其所有子文件夹中,查找全部指定类型的文件(如 *.xls*),'或者与指定类型匹配的文件(如.xls),也可以查找单个文件(如 ABC.doc)。

Dim sFolder As String, PathDic As Object, FileDic As Object, ErrDic As Object, _I As Long, iTime As Single, bHave As Boolean, sFileName As String, _sMyPath As String, sMyType As String, objShell, objFolde, Arr, tmpPath, SH, _bErrList As BooleanSet objShell = CreateObject("Shell.Application")Set objFolder = objShell.BrowseForFolder(0, "选择文件夹", 0, 0)If objFolder Is Nothing ThenExit SubElsesMyPath = objFolder.self.PathIf Right(sMyPath, 1) <> "\" ThensMyPath = sMyPath & "\"End IfEnd IfsMyType = InputBox("请输入查找文件类型或单个文件名称:" & vbCrLf & vbCrLf & _"比如:*.xls* 、*.doc 、ABC.xls 、.*", "文件类型或单个文件", "*.xls*")If sMyType = "" ThenExit SubEnd IfSet objFolder = NothingSet objShell = NothingbErrList = False'如果要显示出错文件夹,请把值改为 TrueApplication.StatusBar = "正在查找,请等待..."iTime = TimerSet PathDic = CreateObject("Scripting.Dictionary")Set FileDic = CreateObject("Scripting.Dictionary")Set ErrDic = CreateObject("Scripting.Dictionary")ErrDic.Add "出错文件夹", ""PathDic.Add sMyPath, ""'有些文件夹会出错,但这个文件夹中的相应文件仍能找出来On Error Resume NextI = 0Do While I < PathDic.CountArr = PathDic.keyssFolder = Dir(Arr(I), vbDirectory)Do While sFolder <> ""'排除掉当前目录(.)和父目录(..)If sFolder <> "." And sFolder <> ".." Then'有些文件夹这里会出错'如果是次级目录If (GetAttr(Arr(I) & sFolder) And vbDirectory) = vbDirectory ThenIf Err.Number <> 0 ThenErr.ClearIf bErrList ThenErrDic.Add (Arr(I) & sFolderr), ""'Err.Clear '放在这里会导致查找结果不全End IfElsePathDic.Add (Arr(I) & sFolder & "\"), ""End IfEnd IfEnd IfsFolder = DirLoopI = I + 1LoopOn Error GoTo 0FileDic.Add ("文件清单【文件夹“" & sMyPath & "”及其所有子文件夹中“" & sMyType & "”】"), ""For Each tmpPath In PathDic.keyssFileName = Dir(tmpPath & sMyType)Do While sFileName <> ""'如果查找文件类型类似.*,必须加下面这行代码'If sFileName Like sMyType Then '文件名及扩展名区分大小写(如*.xls与*.XLS不能同时查出来)If UCase(sFileName) Like UCase(sMyType) Then'文件名及扩展名不区分大小写FileDic.Add (tmpPath & sFileName), ""End IfsFileName = DirLoopNextFor Each SH In ThisWorkbook.WorksheetsIf = "查找结果" ThenSheets("查找结果").Cells.ClearContentsbHave = TrueExit ForEnd IfNextIf Not bHave Then = "查找结果"End IfI = 1If bErrList And ErrDic.Count > 1 ThenSheets("查找结果").[A1].Resize(ErrDic.Count, 1) = WorksheetFunction.Transpose(ErrDic.keys)I = ErrDic.Count + 2End IfSheets("查找结果").Range("A" & I).Resize(FileDic.Count, 1) = WorksheetFunction.Transpose(FileDic.keys)Sheets("查找结果").SelectSheets("查找结果").[A1].SelectiTime = Timer - iTimeApplication.StatusBar = FalseMsgBox "查找结束,用时" & Round(iTime, 0) & "秒。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档