导航:首页 > 编程语言 > python遍历读取文件

python遍历读取文件

发布时间:2023-05-27 18:51:39

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怎样遍历.py的内容

列表的遍历
方法一:通过for循环
li = [i for i in range(10)]
for i in li:
print(i)
方法二:通过while循环
# 虽然for循环已经很好用了,但是在有些情况下,使用while循环可以更灵活
# 只需要将判断条件设置为小于列表长度,即可完成列表通过while循环的遍历
li = [i for i in range(10)]
i = 0
while i < len(li):
print(li[i])
i += 1
方法三:配合enumerate使用,同时获取列表的索引
li = [i + 1 for i in range(10)]

# 此时,i为一个元组,元组的第一个元素为索引,第二个元素为原列表的元素
# 因此,在遍历列表的同时,需要同时获取坐标的情况下,可以配合enumerate()一起使用
for i in enumerate(li):
print(i)
字典的遍历
字典的遍历和列表有一些不同,因为字典有键和值两个关键部分。默认的遍历情况,是遍历字典的键,当然,可以通过字典的键取得值,也可以直接遍历值,或者直接遍历键和值。

方法一:直接使用for循环
直接使用for循环对一个字典进行遍历,默认取得的是字典的键

dt = {i: i + 1 for i in range(10)}

for i in dt:
print("字典的键:", i) # 字典的键
print("字典的值:", dt[i]) # 字典的值
方法二:遍历dict.keys()
这种方法与方法一的效果其实是一样的,同样是获取字典的键

dt = {i: i + 1 for i in range(10)}

for i in dt.keys():
print("字典的键:", i) # 字典的键
print("字典的值:", dt[i]) # 字典的值
方法三:遍历dict.values()
这种方法与方法一和二很不相同,因为它只获取了字典的值

dt = {i: i + 1 for i in range(10)}

# 这是很特殊的方法,因为它没有获取字典的键
for i in dt.values():
print("字典的值:", i) # 此时i不再是字典的键,而是值
方法四:遍历dict.items()
这种方法一般来说要更好,因为它同时获取到了字典的键和值,而且性能上要高于先获取键,再通过键获取对应的值

dt = {i: i + 1 for i in range(10)}

for i in dt.items():
print("字典的键值对:", i)
print("字典的键:", i[0])
print("字典的值:", i[1])
总结
1,列表的遍历比较简单,除了配合enumerate()使用,可以同步获取索引以外,并没有特别值得纠结的。

2,字典的遍历方法比较多,其中第四种是能适用于一切情况的,前两种也可以适用于一切情况,但是如果你同时需要获取键和值,性能不如第四种要好。第三种比较特别,除非你真的只需要字典的值,否则它在多数情况下是不能够满足需求的。

❸ python如何读取文件的内容

# _*_ coding: utf-8 _*_

import pandas as pd

# 获取文件的内容

def get_contends(path):

with open(path) as file_object:

contends = file_object.read()

return contends

# 将一行内容变成数组

def get_contends_arr(contends):

contends_arr_new = []

contends_arr = str(contends).split(']')

for i in range(len(contends_arr)):

if (contends_arr[i].__contains__('[')):

index = contends_arr[i].rfind('[')

temp_str = contends_arr[i][index + 1:]

if temp_str.__contains__('"'):

contends_arr_new.append(temp_str.replace('"', ''))

# print(index)

# print(contends_arr[i])

return contends_arr_new

if __name__ == '__main__':

path = 'event.txt'

contends = get_contends(path)

contends_arr = get_contends_arr(contends)

contents = []

for content in contends_arr:

contents.append(content.split(','))

df = pd.DataFrame(contents, columns=['shelf_code', 'robotid', 'event', 'time'])

(3)python遍历读取文件扩展阅读:

python控制语句茄团

1、if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。

2、for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。

3、while语句,当条件为真时,循环运行语句块。

4、try语句,与except,finally配合使用处理在程序运行中出现的异常情况。

5、class语句,用于定义顷纳拍类型。

6、def语句,用于定义函数和类型的方法。雀羡

❹ 求助 python循环读取文件内容

读取文件练习

❺ Python 拿来直接用的7个os读写文件的操作!网友:建议收藏!

在学习真实案例之前,我们先来了解一下Python文件操作的一些基本概念~~

如何创建读取和写出的文件对象,open()方法来搞定

他有两个参数,第一个就是读取的文件名称,第二个是可选的,指的是打开文件的模式,默认是读取文件。

当我们获取到读取文件对象fin之后我们就可以读取文件内容了,这里介绍两种方式。

第一种是直接读取文件内容,

第二种是按行读取文件内容。

区别在于如果你的文件非常大,如果直接读取效率会非常低下,甚至会撑爆内存。

所以按行读取按行处理就不会因为文件过大而产生问题了

文件读取完成之后写出文件有如下方式:

'\n'的意思是我们手动换行

最后关闭文件有两种方式

为什么要关闭文件呢?

如果不关闭他就会持续打开状态,琐事其他进程后者线程要操作它的时候就会报错

我们有时候写入非常大的数据的时候打开文件后会发现数据不是最新的?

这是因为python在写出文件是先写到内存中,等到一定的事件之后或者文件到达一定的数量之后才会写入到磁盘

所以我们如果想要看最新的数据,可直接调用如下方法

接下来我们使用数据进行测试

1. 文件读操作

文件读、写操作比较常见。读取文件,要先判断文件是否存在。

若文件存在,再读取;不存在,抛出文件不存在异常。

文件存在情况:

文件不存在情况:

open 后,务必要 close,这种写法有些繁琐,还容易出错。借助 with 语法,同时实现 open 和 close 功能,这是更常用的方法。

2.获取文件的后缀名

如何优雅地获取文件后缀名?os.path 模块,splitext 能够优雅地提取文件后缀。

3. 批量修改文件后缀名

修改之前

修改文件后缀名的文件方法如下:

从修改之后:

4. 获取文件名

有时拿到一个文件名时,名字带有路径。这时,使用 os.path、split 方法实现路径和文件的分离。

我们还可以直接使用使用os.path 模块,splitext 提取文件后缀名。

5.获取以指定后缀结尾的文件

当我们想要查询某路径下所有以固定后缀结尾的文件时,可以使用如下方法

6. 批量修改文件后缀名

后缀名批量修改,实现思路:

1. 遍历目录下的所有文件

2. 获取文件的后缀名

3. 如果后缀名命中为 old_ext,rename 重命名

defbatch_rename(work_dir, old_ext, new_ext):

"""

传递当前目录,原来后缀名,新的后缀名后,批量重命名后缀

7. 批量获取文件修改时间

os.walk 生成文件树结构,os.path.getmtime 返回文件的最后一次修改时间:

❻ 求教python怎么遍历指定文件

监控目录 -- 分两个部分: 1. 扫描目录文件, 保持当前状态数据; 2. 状态数据的比较



importos
importfnmatch


defgetfileinfo(filename):
(mode,ino,dev,nlink,
uid,gid,size,atime,mtime,ctime)=os.stat(filename)
returndict(
modifytime=mtime,
createtime=ctime,
size=size,
)


classDirectoryMonitor(object):

def__init__(self,path,fnexp="*.*"):
self.path=path
self.fnexp=fnexp
self.files={}
self.scan()

defscan(self):
currentfiles={}
forpath,dirs,filesinos.walk(self.path):
forfinfnmatch.filter(files,self.fnexp):
fullname=os.path.join(path,f)
currentfiles[fullname]=getfileinfo(fullname)
lastfiles=self.files
self.files=currentfiles
returnself.check(lastfiles,currentfiles)

@staticmethod
defcheck(lastfiles,currfiles):
monitor={}
newer={}
forfinset(currfiles)-set(lastfiles):
newer[f]=currfiles[f]
ifnewer:
monitor["newer"]=newer
deleted={}
forfinset(lastfiles)-set(currfiles):
deleted[f]=lastfiles[f]
ifdeleted:
monitor["deleted"]=deleted
changed={}
forfinset(lastfiles)&set(currfiles):
iflastfiles[f]!=currfiles[f]:
changed[f]=currfiles[f]
ifchanged:
monitor["changed"]=changed
returnmonitor


deftester():
importtime
dm=DirectoryMonitor(r"/home/tim/data","*.txt")
time.sleep(20)
m=dm.scan()
ifm:
printm


if__name__=="__main__":
tester()

❼ python 怎样通过遍历以下文件后全部读到mongodb数据库中

python 访问 mongodb 需要先安装 pymongo,如下:

1pipinstallpymongo

txt 文件格式:

代码如下:


#coding=utf-=MongoClient('127.0.0.1',27017)#连接test数据库,没有则自动创建db=conn.test#使用students集合,没有则自动创建students=db.students#打开学生信息文件,并将数据存入到数据库withopen('students.txt','r')asf:forlineinf.readlines():#分割学生信息items=line.strip(' ').strip(' ').split(',')#添加到数据库students.insert({'stu_id':items[0],'name':items[1],'grade':int(items[2])})#数据库查询学生信息并打印出来forsinstudents.find():print(s)

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

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

1.如何读取excel文件

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

[python]view plain

❾ 如何利用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遍历读取文件相关的资料

热点内容
安卓如何传输图片给苹果 浏览:829
可编程控制器原理应用网络 浏览:587
社畜解压是什么意思 浏览:436
吉利博越用哪个app啊 浏览:513
西安单片机晶振电容 浏览:187
分地面积的算法 浏览:179
安卓手机升级包后怎么安装 浏览:262
济南压缩饼干哪有卖 浏览:524
怎么用rar解压百度网盘 浏览:660
手机哪款解压缩软件好用 浏览:80
失控的算法代码 浏览:297
程序员说有人爱你怎么回答 浏览:106
腾讯游戏安卓怎么用ios登录 浏览:759
石狮云存储服务器 浏览:180
python渗透入门到精通 浏览:272
如何真机调试安卓进程 浏览:739
农行app怎么交公共维修基金 浏览:667
python中字典增加元素 浏览:240
服务器端渲染的数据怎么爬 浏览:165
压缩空气喷射器 浏览:490