Python读取文件夹下的所有文件
os.listdir(path)是得到在path路径下所以文件的名称列表。
open(path)是打开某个文件。
iter是python的迭代器。
所以读取某文件夹下的所有文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import os
path = "D:/Python34/news" #文件夹目录
files = os.listdir(path) #得到文件夹下的所有文件名称
s = []
for file in files: #遍历文件夹
if not os.path.isdir( file ): #判断是否是文件夹,不是文件夹才打开
f = open (path + "/" + file ); #打开文件
iter_f = iter (f); #创建迭代器
str = ""
for line in iter_f: #遍历文件,一行行遍历,读取文本
str = str + line
s.append( str ) #每个文件的文本存到list中
print (s) #打印结果
|
你也可以把遍历文件夹的操作定义成一个函数,如果是文件夹就不断迭代遍历。进而读取文件夹下所有的文件(包括文件夹里中的文件)
Python批量读取文件夹下所有文件
现给定一个文件夹,下面有很多文件(可能是一天一个数据文件等),我们要读取该文件夹下面的所有文件,如:
代码(包括删除空文件,有参考网上代码):
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
37
38
39
40
41
42
43
44
45
46
47
48
|
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 20 23:28:00 2019
@author: 1
"""
import pandas as pd
import os
# 删除空文件夹,否则会报错
def traverse(filepath):
# 遍历filepath下所有文件,包括子目录
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath, fi)
if os.path.isdir(fi_d): # 判断是否为文件夹
if not os.listdir(fi_d): # 如果文件夹为空
os.rmdir(fi_d) # 删除这个空文件夹
else :
traverse(fi_d)
else :
file = os.path.join(filepath, fi_d)
if os.path.getsize( file ) = = 0 : # 文件大小为0
os.remove( file ) # 删除这个文件
def get_file(path): # 创建一个空列表
files = os.listdir(path)
files.sort() # 排序
list = []
for file in files:
if not os.path.isdir(path + file ): # 判断该文件是否是一个文件夹
f_name = str ( file )
# print(f_name)
tr = '\\' # 多增加一个斜杠
filename = path + tr + f_name
list .append(filename)
return ( list )
if __name__ = = '__main__' :
path = r 'D:\workspace\python\m1\T-drive Taxi Trajectories\release\taxi_log_2008_by_id'
traverse(path)
list = get_file(path)
for i in range ( 10 ): # 表示读10个文件
df = pd.read_csv( list [i], sep = ',' )
df.to_csv( 'taxi2.csv' , mode = 'a' , header = None )
|
总结
到此这篇关于Python如何读取文件夹下所有文件的文章就介绍到这了,更多相关Python读取文件夹内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/LZGS_4/article/details/50371030