最近在处理数据的时候需要把所有的文件copy成一个,需要实现类似dos下面的copy *.* a.dat,copy结束后,将a.dat 移动到另一个文件夹,同时清空文件。中间试了下shutil,结果发现在rmtree时候经常出错,总有一个文件删除不了。查了半天不清楚原因所在,后来刚好找到了个写好了错误处理的代码,直接使用了。这里glob很好用,可以获取一个当前目录下的文件列表,而且可以给定文件通配符。
ff=glob.glob("*.ABJ")
fout = file('fn.dat', 'wb')
for n in ff:
fin = file(n, 'rb')
shutil.copyfileobj(fin, fout, 65536)
fin.close()
fout.close()
fn=datadir+"fn.dat"
shutil.move(fn,exedir)
#raw_input("Press ENTER to exit")
os.chdir("..")
print os.getcwd()
#shutil.rmtree(datadir)
removeall.removeall(datadir)
print "ok"
其中for循环中指定 了65536为防止文件太大。
shutil.rmtree本身没有进行错误处理,本来准备自己写,刚好发现一个别人写好的代码,直接拿来用了。
#! /usr/bin/env python
#coding=utf-8
## {{{ Recipe 193736 (r1): Clean up a directory tree
""" removeall.py:
Clean up a directory tree from root.
The directory need not be empty.
The starting directory is not deleted.
Written by: Anand B Pillai <abpillai@lycos.com> """
import sys, os
ERROR_STR= """Error removing %(path)s, %(error)s """
def rmgeneric(path, __func__):
try:
__func__(path)
print 'Removed ', path
except OSError, (errno, strerror):
print ERROR_STR % {'path' : path, 'error': strerror }
def removeall(path):
if not os.path.isdir(path):
return
files=os.listdir(path)
for x in files:
fullpath=os.path.join(path, x)
if os.path.isfile(fullpath):
f=os.remove
rmgeneric(fullpath, f)
elif os.path.isdir(fullpath):
removeall(fullpath)
f=os.rmdir
rmgeneric(fullpath, f)
## End of recipe 193736 }}}
分享到:
相关推荐
一、batch与shell中 目录及文件: 复制代码 代码如下: C:\TESTFOLDER\TEST ├─Test2 └─Test3 test.txt 删除目录及其下的所有文件: ...二、python中 :注意如果有错误会有异常抛出,需要处理异常。 1)删除文件且
本文实例讲述了python通过shutil实现快速文件复制的方法。分享给大家供大家参考。具体如下: python通过shutil实现快速文件拷贝,shutil使用起来非常方便,可以通过pip install shutil安装 from shutil import * ...
python模块学习
glob模块遵循Unix的shell规则来匹配文件名进行文件查找,下面我们结合匹配相关的字符区间与通配符知识,来简单掌握Python中glob模块查找文件路径的用法
Pythonglob模块的应用glob文件路径查找.pdf
主要介绍了在Python中使用glob模块查找文件路径的方法,使用模块其中的iglob方法实现起来非常简单,需要的朋友可以参考下
通过查看网络视频教程,使用python tkinter glob PIL Image ImageTk 实现图片浏览器,练习写一个图片浏览器,带较详细的注释。希望对初学者有所用处。
glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。...列出子目录中的文件,必须在模式中包括子目录名: import glob #用子目录查询文件 print ('Named explicitly:') for name in glob.glob('dir/sub
最近学习下python,将从指定目录中过滤出指定文件类型的文件输出的方法总结一下,供日后查阅 复制代码 代码如下: #!/usr/bin/env python import glob import os os.chdir(“./”) for file in glob.glob(“*.py”): ...
glob的模式规则与re模块使用的正则表达式并不相同。实际上,glob的模式遵循标准UNIX路径扩展规则。只使用几个特殊字符来实现两个不同...这篇文章主要介绍了Python3标准库glob文件名模式匹配的知识,需要的朋友可以参考下
python3.6亲测可用
python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*...
Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...
自己总结的python笔记,适合初学者使用,排版简洁美观适合直接打印,以下是部分展示, 批量读取文件 In [6]: import pandas as pd #载入 pandas 包记为 pd In [7]: import os #载入 os 包 In [8]: import glob #载入...
print(os.path.basename(path)) # 查询路径中包含的文件名 print(os.path.dirname(path)) # 查询路径中包含的目录 info = os.path.split(path) # 将路径分割成文件名和目录两个部分,放在一个表中返回 path2 = os...
本文介绍的是利用Python语言,做成绩分析并生成成绩分析动态图表。Python语言可以利用Pandas、Pyecharts等各种类库,进行数据分析。 本文介绍的成绩分析大体分为三步: 一、拼合单科成绩,合成学年成绩,计算总分,...