最近在处理数据的时候需要把所有的文件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 * ...
`glob`模块是Python标准库中的一个重要组成部分,它主要用于文件路径的模式匹配。通过使用`glob`模块,开发者能够更加高效地查找符合特定规则的文件路径,这对于进行文件管理、自动化脚本编写等工作尤为有用。 ####...
### Python中的glob模块详解 #### 一、概览 `glob`模块是Python的一个内置库,主要用于基于指定的模式匹配文件路径。它采用类似于Unix shell风格的通配符来进行匹配,使得用户能够方便地查找符合特定命名规则的...
Python的标准库包含了许多实用的模块,其中之一就是`glob`,它提供了一种强大的方式来匹配和查找文件系统中的文件和目录。`glob`模块的主要功能是根据特定的模式(类似于正则表达式,但更简单)来搜索符合规则的文件...
### Python的shutil模块中文件的复制操作函数详解 在Python中,`shutil`模块提供了高级别的文件操作服务,其功能比`os`模块更为强大。本篇文章将重点介绍`shutil`模块中用于文件复制操作的主要函数:`copy()`, `...
系统利用Python中的glob、shutil和os库根据文件名进行气象数据的分类整理,将不同的数据分类进不同的文件夹。利用glob、shutil、pandas和os库将上一步分类完成的文件进行合并,合并时去除空文件。其中有关PM25的文件...
### Python3标准库glob文件名模式匹配的问题 #### 概述 `glob` 是 Python 的一个内置标准库,主要用于文件名模式匹配。它提供了一种简单有效的方式来查找符合特定模式的文件名。与 `re` 模块所使用的正则表达式不同...
最近学习下python,将从指定目录中过滤出指定文件类型的文件输出的方法总结一下,供日后查阅 复制代码 代码如下: #!/usr/bin/env python import glob import os os.chdir(“./”) for file in glob.glob(“*.py”): ...
在本项目中,我们将利用Python的几个库,包括tkinter、glob、PIL(Python Imaging Library)以及其Image和ImageTk模块,来创建一个简单的图片浏览器应用。这个应用旨在帮助用户浏览并显示指定目录下的所有图片文件。...
在Python编程中,`glob`模块提供了一个方便的方式来查找符合特定模式的文件和目录路径。这个模块主要用于遍历文件系统,查找与特定模式匹配的文件路径。这些模式通常包含通配符,比如`*`, `?`, 和 `[]`。 1. **...
在Python编程语言中,"ls...以上就是在Python中模拟"ls"命令的方法,以及如何通过`os`和`glob`模块进行文件和目录的查找与管理。这两个模块提供了强大的文件系统操作功能,是Python开发者日常工作中不可或缺的工具。
在Python编程语言中,文件和目录访问是日常开发中不可或缺的部分。Python3.7.2的标准库提供了丰富的功能,使得处理文件和目录变得极其便捷。本文档将详细讲解Python3.7.2中与文件和目录操作相关的知识点,旨在帮助...
在深入探讨Python中的glob模块之前,首先需要了解glob模块的基本用途以及如何在文件路径查找中应用。glob模块是一个基于Unix shell的规则(通配符)匹配文件路径名模式的工具,它允许用户利用特定的模式来匹配一个或...
在 Python 中,我们可以使用 `os` 模块和 `glob` 模块来读取文件夹中的图片。首先,我们需要使用 `os` 模块的 `path.join` 函数来将文件夹路径和文件名连接起来。例如,如果我们想要读取文件夹 `Image_dir` 中的所有...
这通常在Python 2.x版本中是必要的,但在Python 3.x版本中,编码已经默认为UTF-8,所以这一步在Python 3中可省略。 ```python import sys reload(sys) sys.setdefaultencoding('utf-8') from docx import Document ...
在 Ubuntu 1604 系统中,自带 Python 2.7 和 Python 3.5 版本,但是在某些情况下,我们可能需要安装其他版本的 Python,例如 Python 3.8。在本文中,我们将介绍如何在 Ubuntu 1604 中安装多个 Python 版本,并解决...