Python组织文件 实践:拷贝某种类型的所有文件
#! python3
#chapter09-test01- 遍历目录树,查找特定扩展名的文件不论这些文件的位置在哪里,都将他们
#拷贝到一个新的文件夹中 import os,shutil,pprint #寻找指定文件夹内的某种类型的文件
#返回匹配文件的绝对地址的一个列表
#folder-指定的文件夹地址
#fileType-要查找类型的扩展名
def findFileType(fileType,folder):
matchFileAbs=[] #用于存放查到的文件绝对地址
#使用walk()遍历目录树
for foldername,subfolders,filenames in os.walk(path):
#遍历这个文件名列表,然后匹配扩展名
for filename in filenames:
extensionName=os.path.splitext(filename)
if extensionName[1]==fileType:
#获取绝对路径,然后拷贝
fileAbsPath=os.path.join(foldername,filename)
fileAbsPath=os.path.abspath(fileAbsPath)
matchFileAbs.append(fileAbsPath)
return matchFileAbs #拷贝文件
#srcfileAbs-一个包含文件地址的列表
#desFolder-指定用来存放的文件夹
def copyFile(srcfileAbs,desFolder):
for srcPath in srcfileAbs:
shutil.copy(srcPath,desFolder) #为了避免出现目标文件夹不存在而copy()又不会创建文件夹造成复制失败的情况
#定义一个函数,他能让指定的地址存在
def presence(path):
if not os.path.exists(path):
os.makedirs(path) desFolder=r'.\forTest\toSave2'
path=r'.\forTest'
matchFileAbs=findFileType('.txt',path)
presence(desFolder)
copyFile(matchFileAbs,desFolder)
关于遍历文件和获取文件名怎么解决
首先想的是使用 os.walk() 还是用 os.listdir() 的组合,使用 os.walk() 返回数据当中的当前文件夹,然后对其使用 os.listdir() 获取文件名;写完后又发现这样太臃肿了,明明 os.walk() 就能返回当前文件夹下的文件名,遂改回来了
遇到的问题
1)忘记了 os.path.splitext(path) 返回的是一个包含文件名与扩展名元组,还以为他只返回一个扩展名的字符串
2)在函数内部对全局变量操作时,我想到了这样是不行的,并进行了测试。完事后有个想法,能不能把这种改错方式迁移到修改Bug的过程中,既能够想到,又能够做到在该BUG的时候去溯源
3)虽然这个程序很简单,但我这次编写非常顺利,且逻辑清晰,还是离不开“关注主要的”这个思想
4)有的可以用相对地址,有的能用绝对地址 不严谨
5)发现 shutil.copy(src,des) 假如 des 不存在,他不会新建文件夹,而是直接将所有的文件复制过去,然后你得到一个没有扩展名的文件
Python组织文件 实践:拷贝某种类型的所有文件的更多相关文章
- 怎么去掉Xcode工程中的某种类型的警告
XCode警告 问题描述 在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多 ...
- (转)怎么去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
问题描述 在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多多的警告,那么我们有 ...
- 怎么去掉Xcode工程中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
unsigned long numComponents = CGColorGetNumberOfComponents([[UIColor blackColor] CGColor]); 2014年12月 ...
- 怎么去掉Xcodeproject中的某种类型的警告 Implicit conversion loses integer precision: 'NSInteger' (aka 'long') to 'int32
问题描写叙述 在我们的项目中,通常使用了大量的第三方代码,这些代码可能非常复杂,我们不敢修改他们,但是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许很多多的警告,那么 ...
- SSH 暴力破解趋势——植入的恶意文件属 DDoS 类型的恶意文件最多,接近70%,包括 Ganiw、 Dofloo、Mirai、 Xarcen、 PNScan、 LuaBot、 Ddostf等家族。此外挂机、比特币等挖矿程序占5.21%
SSH 暴力破解趋势:从云平台向物联网设备迁移 | 云鼎实验室出品 from: http://www.freebuf.com/articles/paper/177473.html 导语:近日,腾讯云发 ...
- Python组织文件 实践:将文件的不同版本备份为ZIP文件
功能:备份文件夹.能将文件的不同版本备份下来,并且每个有不同的名字 #! python3 # backupToZip.py - 备份文件的不同版本到压缩文件中 import zipfile,os #f ...
- python03-break、continue、for循环、数据bytes类型、字符串与字节的关系、变量指向与深浅拷贝、set集合、文件操作
目录: 1.break.continue 2.for循环 3.数据bytes类型 4.字符串与字节的关系 5.变量指向与深浅拷贝 6.set集合 7.文件操作 一.break.continue bre ...
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi copy() =====java的无,要自己写... ====php copy ...
- 《Python编程从入门到实践》_第十章_文件和异常
读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕 ...
随机推荐
- @JsonIgnore忽略属性,返回的json中不包含字段
@JsonIgnore的使用: 实体类中加@JsonIgnore注解 package com.baidu.entity; import com.fasterxml.jackson.annotation ...
- RGB颜色值与十六进制颜色码转换工具
RGB颜色值转换成十六进制颜色码: 十六进制颜色码转换成RGB颜色值: 颜色码对照表 颜色 英文代码 形象描述 十六进制 RGB LightPink 浅粉红 #FFB6C1 255, ...
- 【原创】JAVA word转html
import java.io.File; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; impor ...
- requests 常见方法总结
请求设置:requests.get/post ( url, data={}, params={}, headers={}, timeout=0.01, files={} Session() ...
- LOJ #10121 与众不同 (RMQ+二分)
题目大意 :给你一个整数序列,定义一个合法子串为子串内所有数互不相同,会有很多询问,求区间$[L,R]$内最长连续合法子串长度 一道思维不错的$RMQ$题,NOIP要是考这种题可能会考挂一片 预处理出 ...
- Linux 和 Windows 双系统时间同步问题 修改注册表
路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 1:新建 >> DWORD(32 b ...
- js模拟支付宝提交表单
弄过支付宝的程序猿可能都知道,里面有非常多地方都用到了自提交表单的方式,支付宝的接口通过请求API的形式取得server返回的表单字符串,使用out.print("表单字符串")在 ...
- Attribute(一)——提前定义特性
在项目中接触到了Attribute,那么什么是Attribute,有些什么作用呢?这里来了解一下. 一.什么是Attribute Attribute 类将提前定义的系统信息或用户定义的自己定义信息与目 ...
- node07---post请求、表单提交、文件上传
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ASP.NET Application and Page Life Cycle
ASP.NET Application Life Cycle Overview for IIS 7.0 https://msdn.microsoft.com/en-us/library/bb47025 ...