文件管理 · 2022年9月7日

python文件遍历|怎样用Python遍历一个目录下所有文件

Ⅰ 如何用Python os.path.walk方法遍历搜索文件内容的操作详解

本文是关于如何用Python os.path.walk方法遍历搜索文件目录内容的操作详解的文章,python 代码中用os.path.walk函数这个python模块的方法来遍历文件,python列出文件夹下的所有文件并找到自己想要的内容。文中使用到了Python os模块和Python sys模块,这两个模块具体的使用方法请参考玩蛇网相关文章阅读。Python os.path.walk方法遍历文件搜索内容方法代码如下:?041import os, sys#代码中需要用到的方法模块导入 listonly = False skipexts = ['.gif', '.exe', '.pyc', '.o', '.a','.dll','.lib','.pdb','.mdb'] # ignore binary files def visitfile(fname, searchKey): global fcount, vcount try: if not listonly: if os.path.splitext(fname)[1] in skipexts: pass elif open(fname).read().find(searchKey) != -1: print'%s has %s' % (fname, searchKey) fcount += 1 except: pass vcount += 1 #www.iplaypy.com def visitor(args, directoryName,filesInDirectory): for fname in filesInDirectory: fpath = os.path.join(directoryName, fname) if not os.path.isdir(fpath): visitfile(fpath,args) def searcher(startdir, searchkey): global fcount, vcount fcount = vcount = 0 os.path.walk(startdir, visitor, searchkey) if __name__ == '__main__': root=raw_input("type root directory:") key=raw_input("type key:") searcher(root,key) print 'Found in %d files, visited %d' % (fcount, vcount)

Ⅱ 怎样用Python遍历一个目录下所有文件

importospath='C:/'forroot,dirs,filesinos.walk(path):print("Root=",root,"dirs=",dirs,"files=",files)#效果嘛复..你电制脑上运行下就知道了

Ⅲ python遍历时line和row

获取当前位置,作为偏移值。总体上readlines()不慢于python一次次调用readline(),因为前者的循环在C语言层面,而使用readline()的循环是在Python语言层面。但是readlines()会一次性把全部数据读到内存中,内存占用率会过高,readline()每次只读一行,对于读取大文件,需要做出取舍。如果不需要使用seek()定位偏移,forlineinopen(file)速度更佳。使用readlines(),适合量级较小的日志文件importos。

Ⅳ python中文件的遍历,拷贝以及几个版本的小区别

使用os和shutil两个模块,os.listdir用于读取目标目录中的文件名称,star文件夹中存储了我手动筛选出来的DNG格式图片,jpg文件夹中存储了所有的jpg格式图片,于是在获取到所有DNG格式图片后使用flag数组标记一下然后循环遍历targetnames数组寻找对应名称的jpg文件,找到的话就使用shutil.file复制到指定文件夹,然后就大功告成了!

Ⅳ python一般遍历所有文件需要多久

在互联网管理、金融、物流等领域,往往离不开数据处理、统计分析等辅助决策的操作。传统的商业分析(Business Analysis),定性占比很大,以相对简单的数据处理为辅助,人们使用的分析工具主要是Excel;然而,自Excel2007版起,最大支持的工作表大小为16,384 列 × 1,048,576 行,超出最大行列数单元格中的数据将会丢失。在大数据背景的今天,面对千万条以上动辄成百上千G的数据,单用excel难免显得力不从心,越来越多的人将关注点转向python。易踩坑!Excel输给Python(1)数据量级太大,报表来不及保存,Excel崩溃无响应比如,工作中经常需要对一个表进行删除重复值处理,当工作表中格式过于复杂、数据量过于庞大时,Excel在计算时容易报错崩溃。而python在数据处理的量级和性能上明显高于excel,对python来说,只需调用drop_plicates方法就可以轻松处理大批量数据,无需担心软件崩溃异常退出。Python的处理方法如下:调用方法:DataFrame.drop_plicates(subset=None,keep='first', inplace=False)————————————————参数说明:subset: column label or sequence of labels, optional用来指定特定的列,默认所有列keep :{‘first’, ‘last’, False}, default ‘first’删除重复项并保留第一次出现的项inplace: boolean, default False选择直接在原来数据上修改或是保留一个副本—————————————————删除重复行(2)操作繁琐,人工处理容易粗心犯错我们经常会遇到从一个Excel表格拷贝一些数据,粘贴到另一个Excel表格中去的情况;或者从多个表格中,合并含有重复列的旧表格为新表。这些工作并不困难,却需要耗费大量人工审核的时间,且容易出错。利用python,可以放心交给机器做运算,一行命令解决人工需点击上百次的工作。Python处理方法如下:设置循环遍历,匹配关键字,按照列名自动分割数据存储至本地pandas自动分列操作(3)重复性工作,效率低下在做图表时,由于每个报表都需要做对应的图表,人工重复性操作N个报表,效率低下。但是运用Python,可以调用已经集成好的工具包,自动化收集和清理数据,保存和刷新报表,对数据进行可视化展示。Python处理方法如下:对多个图表进行批量处理,并且轻松输出可视化内容,相比excel要高效得多。小白学Python,压力大吗?听起来Python是不是很高大上的样子?但事实上,即便是小白也能驾驭这样的“高大上”技能!简单易学,速度快,正是学习Python的优点之一。Python说明文档极其简单,它更专注于解决问题而不是研究计算机语言本身,所以小白也能轻松上手!以Python使用openpyxl读写excel文件为例

Ⅵ python:遍历文件并搜索/读取

os.walk()

Ⅶ Python中如何遍历指定目录下的所有文件

例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。 1. os.walk os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。>>> import os>>> def fun( path ):… for root, dirs, files in os.walk( path ):… for fn in files:… print root, fn… >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD a.txtC:\TDDOWNLOAD b.txtC:\TDDOWNLOAD\sub1 c.txtC:\TDDOWNLOAD\sub1 d.txt>>> 2. glob.glob glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:>>> def fun( path ):… for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件… if os.path.isdir( fn ): # 如果结果为文件夹… fun( fn ) # 递归… else:… print fn… >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt>>> '*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。

Ⅷ 如何用python遍历文件夹下的所有excel文件

大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:

1.如何读取excel文件

网上的版本很多,在xlrd模块基础上,找到一些源码:

[python]view plain

importxdrlib,sys

importxlrd

defopen_excel(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx"):

data=xlrd.open_workbook(file)

returndata

#根据索引获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_index:表的索引

defexcel_table_byindex(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx",colnameindex=0,by_index=0):

data=open_excel(file)

table=data.sheets()[by_index]

nrows=table.nrows#行数

ncols=table.ncols#列数

colnames=table.row_values(colnameindex)#某一行数据

list=[]

forrownuminrange(1,nrows):

row=table.row_values(rownum)

ifrow:

app={}

foriinrange(len(colnames)):

app[colnames[i]]=row[i]

list.append(app)

returnlist

#根据名称获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_name:Sheet1名称

defexcel_table_byname(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx",colnameindex=0,by_name=u'Sheet1'):

data=open_excel(file)

table=data.sheet_by_name(by_name)

nrows=table.nrows#行数

colnames=table.row_values(colnameindex)#某一行数据

list=[]

forrownuminrange(1,nrows):

row=table.row_values(rownum)

ifrow:

app={}

foriinrange(len(colnames)):

app[colnames[i]]=row[i]

list.append(app)

returnlist

defmain():

tables=excel_table_byindex()

forrowintables:

print(row)

tables=excel_table_byname()

forrowintables:

print(row)

if__name__=="__main__":

main()

最后一句是重点,所以这里也给代码人点个赞!

最后一句让代码里的函数都可以被复用,简单地说:假设文件名是a,在程序中import a以后,就可以用a.excel_table_byname()和a.excel_table_byindex()这两个超级好用的函数了。

2.然后是遍历文件夹取得excel文件以及路径:,原创代码如下:

[python]view plain

importos

importxlrd

importtest_wy

xpath="E:/唐伟捷/电力/电力系统总文件夹/舟山电力"

xtype="xlsx"

typedata=[]

name=[]

raw_data=[]

file_path=[]

defcollect_xls(list_collect,type1):

#取得列表中所有的type文件

foreach_elementinlist_collect:

ifisinstance(each_element,list):

collect_xls(each_element,type1)

elifeach_element.endswith(type1):

typedata.insert(0,each_element)

returntypedata

#读取所有文件夹中的xls文件

defread_xls(path,type2):

#遍历路径文件夹

forfileinos.walk(path):

foreach_listinfile[2]:

file_path=file[0]+"/"+each_list

#os.walk()函数返回三个参数:路径,子文件夹,路径下的文件,利用字符串拼接file[0]和file[2]得到文件的路径

name.insert(0,file_path)

all_xls=collect_xls(name,type2)

#遍历所有type文件路径并读取数据

forevey_nameinall_xls:

xls_data=xlrd.open_workbook(evey_name)

foreach_sheetinxls_data.sheets():

sheet_data=test_wy.excel_table_byname(evey_name,0,each_sheet.name)

#请参考读取excel文件的代码

raw_data.insert(0,sheet_data)

print(each_sheet.name,":Datahasbeendone.")

returnraw_data

a=read_xls(xpath,xtype)

print("Victory")

欢迎各种不一样的想法~~

Ⅸ python 如何遍历文件夹里所有的txt文件

PY不会,其它语言我会

Ⅹ 如何利用Python遍历文件夹

1. 基本实现

[[email protected] ~]# cat dirfile.py

import ospath='/tmp'for dirpath,dirnames,filenames in os.walk(path): for file in filenames:fullpath=os.path.join(dirpath,file) print fullpath

执行结果如下:

[[email protected] ~]# python dirfile.py /tmp/yum.log/tmp/pulse-3QSA3BbwpQ49/pid/tmp/pulse-3QSA3BbwpQ49/native/tmp/.esd-0/socket

2. 在上例的基础上传递参数

import os,syspath=sys.argv[1]for dirpath,dirnames,filenames in os.walk(path): for file in filenames:fullpath=os.path.join(dirpath,file) print fullpath

执行方式为:[[email protected] ~]# python dirfile.py /tmp

在这里,sys.argv[1]是接受参数,也可以定义sys.argv[2]接受第二个参数

3. 如何用函数实现

PS:

1> def __init__():函数,也叫初始化函数。

self.path = path可以理解为初始化定义了1个变量。 在后面的def里面调用的时候必须要使用self.path而不能使用path

2>__name__ == '__main__'

模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这种情况下, __name__ 的值将是一个特别缺省"__main__"。上述类中加上__name__ == '__main__'的判断语句,可以直接在终端环境下执行python dirfile.py /tmp进行测试,不必非得在交互式环境下导入模块进行测试。