下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import os
import datetime
import tarfile
import fnmatch
def find_spe_file(root, patterns = [ '*' ], non_cludedir = []):
for root, dirnames, filenames in os.walk(root):
for pattern in patterns:
for filename in filenames:
if fnmatch.fnmatch(filename, pattern):
#print(filename)
yield os.path.join(root, filename)
def cre_tarfile():
args = [ "*.jpg" , "*.jepg" ]
now = datetime.datetime.now().strftime( "%Y_%m_%d_%H_%M_%S" )
filename = "all_img_{0}.tar.gz" . format (now)
with tarfile. open (filename, mode = 'w:gz' ) as f:
for item in find_spe_file( "." , args):
#print(item)
f.add(item)
if __name__ = = "__main__" :
cre_tarfile()
|
下面看下使用python读取指定目录下的指定类型文件
准备工作:设置指定的路径,使用os.listdir() 方法获取路径下所有的文件
1
2
3
|
import os
path = "d:\\data" # 设置路径
dirs = os.listdir(path) # 获取指定路径下的文件
|
循环判断:使用os.path.splitext()方法筛选出指定类型的文件
1
2
3
|
for i in dirs: # 循环读取路径下的文件并筛选输出
if os.path.splitext(i)[ 1 ] = = ".csv" : # 筛选csv文件
print i # 输出所有的csv文件
|
案例展示:
1
2
3
4
5
6
7
|
# encoding: utf-8
import os
path = "d:\\data" # 设置路径
dirs = os.listdir(path) # 获取指定路径下的文件
for i in dirs: # 循环读取路径下的文件并筛选输出
if os.path.splitext(i)[ 1 ] = = ".csv" : # 筛选csv文件
print i # 输出所有的csv文件
|
运行结果:
20160904.csv
20160911.csv
20160918.csv
20160925.csv
20161002.csv
20161009.csv
函数解释:
os.listdir(path)
函数功能:返回一个列表,其中包含由path指定的目录中的条目的名称。 列表是任意顺序的。它不包括特殊条目'.‘ 和'..‘,即使它们存在于目录中。
1
2
3
4
5
|
import os, sys
path = "d:\\tmp\\"
dirs = os.listdir( path )
for file in dirs:
print ( file )
|
运行结果:
Applicationdocs.docx
test.java
book.zip
foo.txt
Java Multiple Inheritance.html
Java Multiple Inheritance_files
java.ppt
ParallelPortViewer
os.path.splitext(path)
函数功能:分离文件名与扩展名;默认返回(fname,fextension)元组,可做切片操作
1
2
3
|
import os, sys
path = 'c:\\csv\\test.csv'
print os.path.splitext(path)
|
运行结果:
('c:\\csv\\test', '.csv')
总结
以上所述是小编给大家介绍的python打包压缩、读取指定目录下的指定类型文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/csdn2798694115/article/details/79910726