05 Python如何一次性轻松读取多个不同目录下的文件?

文件夹里有很多个csv文件,可是我都只需要读取表头,如果每次读文件都要写打开文件,读取,关闭文件,这样代码重复率太高了,那么有什么办法可以轻松一点呢?
先看我的文件目录:
在这里插入图片描述
不多说,上代码:

import glob
#写你自己的csv文件的目录,我用的是绝对路径,这里也可以用相对路径
#因为我用相对路径去索引我的文件很麻烦,不想移动文件的位置
path="C:\你好"

#下面这两行是核心喔
filenames=glob.glob(path + "\*.csv")
for filename in filenames:
	f=open(filename,'r',encoding="utf-8")
    rows1=f.readline().strip()
    f.close()

就是使用glob函数,glob函数的具体用法我这里不介绍,自行查找。这样,通过循环就可以自行遍历目录下面的每一个文件了。

那么,要是文件放在多个目录下面怎么办?

再来一个循环就好了,前提是你的目录有规律,哈哈,比如这样:
在这里插入图片描述
那么,我们可以这样做:

for i in range(1,5):#range是左闭右开
        path=r"G:\part0"+str(i)+r"\Chaing" 

就可以遍历目录part1-4了,然后接前面的循环,就解决了。总体代码:

for i in range(1,5):#range是左闭右开
		#str(i)将数字化为字符串,不然报错
        path=r"G:\part0"+str(i)+r"\Chaing"  
        filenames=glob.glob(path + "\*.csv")
        #写的是同一个文件,所以放在下面这个循环前面
        #而读取的每次是不同的文件,所以放在下面的循环里面,至于1、2,反应了我写代码的时候的顺序,哈哈哈哈
        f2=open("myFormalData2.csv",mode='a')
        for filename in filenames:
            f=open(filename,'r',encoding="utf-8")
            rows1=f.readline().strip()
            #lst=str(rows1).split(",")
            print(rows1)
            f2.write(rows1)
            f2.write("\n")
        f2.close()

有用的话,就点个赞叭!

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值