当前位置:首页 » 文件管理 » python历遍文件夹

python历遍文件夹

发布时间: 2022-04-20 16:50:45

① 用python遍历一个文件夹下的文件给出两个参数表示时间,如何挑选这两个时间段之间的文件

listdir( path )列出当前path路径下的所有文件
getctime( file ) 得到file的创建时间(秒),另外getmtime得到文件的修改
gmttime( seconds ) 把getctime得到的秒数转换为一个gmtime结构体
datetime()构造日期函数,把gmtime结构体的内容穿进去,就得到了可比较时间的datetime对象
[ file for item,file in listdate if (starttime < item < endtime) ]
把满足 starttime < item < endtime 条件的文件选取出来就可以了。

from time import gmttime
from datetime import datetime
from os.path import getctime
form os import listdir

def listdir(path, starttime, endtime ):
if not isinstance(starttime, datetime)
raise TypeError
if not isinstance(endtime, datetime)
raise TypeError
if starttime > endtime:
starttime, endtime = endtime, starttime
listtime = [ (gmtime(getctime(file)),file) for file in listdir( path ) ]
listdate = ([datetime( t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec ),file) for t, file in listtime]
return [ file for item,file in listdate if (starttime < item < endtime) ]

② 使用python遍历文件夹将文件夹中所有的txt文本转为html连接形式。

importos
defgetalltxtfilename(path):
txtfilenames=[]
fordirpath,dirnames,filenamesinos.walk(path):
filenames=filter(lambdafilename:filename[-4:]=='.txt',filenames)
filenames=map(lambdafilename:os.path.join(dirpath,filename),filenames)
txtfilenames.extend(filenames)
returntxtfilenames
deftxttohtmllink(path):
filenames=getalltxtfilename(path)
htmllink=[]
forfilenameinfilenames:
ifos.path.isfile(filename):
htmllinktext=''
myfile=open(filename)
firstline=myfile.readline()
whilefirstlineandlen(firstline)<2:
firstline=myfile.readline()
ifnotfirstline:
firstline=''*2
else:
firstline=firstline.strip(' ')
htmllinktext+=firstline[0]+'<ahref="'+
filename+'">'+
firstline[1:]+'</a><br>'
htmllink.append(htmllinktext)
myfile.close()
returnhtmllink
path=r"文件夹路径"#将此处替换为实际文件夹的路径
htmllinks=txttohtmllink(path)
forhtmllinkinhtmllinks:
printhtmllink

在html标记前加上一个字符,这就不是合法的html文本形式,还是按照要求做了,如果输入到html文件肯定会出错

③ python,如何遍历一个目录,输出所有文件名

importos

defiterbrowse(path):
forhome,dirs,filesinos.walk(path):
forfilenameinfiles:
yieldos.path.join(home,filename)


forfullnameiniterbrowse("/home/bruce"):
printfullname

④ 如何利用Python遍历文件夹

1. 基本实现

[root@localhost ~]# cat dirfile.py

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

执行结果如下:

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

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

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

执行方式为:[root@localhost ~]# 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进行测试,不必非得在交互式环境下导入模块进行测试。

⑤ 如何用Python实现目录遍历

1. 基本实现

[root@localhost ~]# cat dirfile.py

import os
path='/tmp'
for dirpath,dirnames,filenames in os.walk(path):
for file in filenames:
fullpath=os.path.join(dirpath,file)
print fullpath
执行结果如下:

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

⑥ 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.txt
C:\TDDOWNLOAD b.txt
C:\TDDOWNLOAD\sub1 c.txt
C:\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.txt
C:\TDDOWNLOAD\b.txt
C:\TDDOWNLOAD\sub1\c.txt
C:\TDDOWNLOAD\sub1\d.txt
>>>

'*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。

⑦ 如何利用Python遍历文件夹

import os
import os.path
rootdir = “d:\data” # 指明被遍历的文件夹

for parent,dirnames,filenames in os.walk(rootdir): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for dirname in dirnames: #输出文件夹信息
print "parent is:" + parent
print "dirname is" + dirname

for filename in filenames: #输出文件信息
print "parent is": + parent
print "filename is:" + filename
print "the full name of the file is:" + os.path.join(parent,filename) #输出文件路径信息

#windows下为:d:\data\query_text\EL_00154

⑧ 读取python遍历中文目录得到的文件路径报错

这是因为路径里面包含中文的原因:

  1. linux的系统字符编码默认为utf-8,而要搜索的文件路径nameFile是Unicode,需要进行解码成unicode,因此作如下修改:

  2. fout=codecs.open(nameFile.encode("utf-8"),"w","utf-8"
  3. 当然,另外一种方法就是修改为英文的路径;

  4. 关于编码和解码的知识,请参考:http://www.cnblogs.com/qiernonstop/p/3634462.html

⑨ python 递归遍历文件夹

没有仔细看,但你的第一句就有错
def distinguish_file(user_paht):
参数应为user_path

⑩ 如何用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")

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


热点内容
云隙服务器下载 发布:2024-05-19 04:33:22 浏览:312
德国C语言 发布:2024-05-19 04:13:40 浏览:959
音频管理器没有文件夹 发布:2024-05-19 04:13:36 浏览:666
qq邮箱端口993服务器怎么填 发布:2024-05-19 04:07:05 浏览:202
javaapi框架 发布:2024-05-19 04:06:59 浏览:359
与存储结构无关的术语 发布:2024-05-19 04:05:41 浏览:499
编译路由器固件选择 发布:2024-05-19 03:56:28 浏览:39
手机f加密 发布:2024-05-19 03:28:47 浏览:225
用什么密码写日记 发布:2024-05-19 03:27:57 浏览:303
数据库access2003 发布:2024-05-19 02:49:39 浏览:620