刚学python,把简明教程搞完了,在网上看到的一些方便的函数,粘一下
1 遍历文件夹和文件
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->import os
import os.path
# os,os.path里包含大多数文件访问的函数,所以要先引入它们.
# 请按照你的实际情况修改这个路径
rootdir = " d:/download "
for parent, dirnames, filenames in os.walk(rootdir):
# case 1:
for dirname in dirnames:
print ( " parent is: " + parent)
print ( " dirname is: " + dirname)
# case 2
for filename in filenames:
print ( " parent is: " + parent)
print ( " filename with full path : " + os.path.join(parent, filename))
''' 知识点:
* os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.
* case1 演示了如何遍历所有目录.
* case2 演示了如何遍历所有文件.
* os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java".
'''
2 分割路径和文件名
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->import os.path
# 常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.
# 根据你机器的实际情况修改下面参数.
spath = " D:/download/repository.7z "
# case 1:
p,f = os.path.split(spath);
print ( " dir is: " + p)
print ( " file is: " + f)
# case 2:
drv,left = os.path.splitdrive(spath);
print ( " driver is: " + drv)
print ( " left is: " + left)
# case 3:
f,ext = os.path.splitext(spath);
print ( " f is: " + f)
print ( " ext is: " + ext)
'''
知识点: 这三个函数都返回二元组.
* case1 分隔目录和文件名
* case2 分隔盘符和文件名
* case3 分隔文件和扩展名
'''
总结:5个函数
- os.walk(spath)
- os.path.split(spath)
- os.path.splitdrive(spath)
- os.path.splitext(spath)
- os.path.join(path1,path2)
3 实战:文件备份小程序
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
import os
import shutil
import datetime
'''
作用:将目录备份到其他路径。
实际效果:
假设给定目录"/media/data/programmer/project/python" ,
备份路径"/home/diegoyun/backup/“ ,
则会将python目录备份到备份路径下,形如:
/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz..
用法:更改这两个参数.
backdir:备份目的地.
copydirs:想要备份的文件夹.
'''
def mainLogic():
# add dirs you want to copy
backdir = " d:\\test "
print (backdir)
copydirs = []
copydirs.append( " d:\\temp " );
# copydirs.append("d:\\test");
print ( " Copying files =================== " )
start = datetime.datetime.now()
# gen a data folder for backup
backdir = os.path.join(backdir,start.strftime( " %Y-%m-%d " ))
# print("backdir is:"+backdir)
kc = 0
for d in copydirs:
kc = kc + copyFiles(d,backdir)
end = datetime.datetime.now()
print ( " Finished! =================== " )
print ( " Total files : " + str(kc) )
print ( " Elapsed time : " + str((end - start).seconds) + " seconds " )
def copyFiles(copydir,backdir):
prefix = getPathPrefix(copydir)
# print("prefix is:"+prefix )
i = 0
for dirpath,dirnames,filenames in os.walk(copydir):
for name in filenames:
oldpath = os.path.join(dirpath,name)
newpath = omitPrefix(dirpath,prefix)
print ( " backdir is: " + backdir )
newpath = os.path.join(backdir,newpath)
print ( " newpath is: " + newpath)
if os.path.exists(newpath) != True:
os.makedirs(newpath)
newpath = os.path.join(newpath,name)
print ( " From: " + oldpath + " to: " + newpath)
shutil.copyfile(oldpath,newpath)
i = i + 1
return i
def getPathPrefix(fullpath):
# Giving /media/data/programmer/project/ , get the prefix
# /media/data/programmer/
l = fullpath.split(os.path.sep)
# print(str(l[-1]=="")
if l[ - 1 ] == "" :
tmp = l[ - 2 ]
else :
tmp = l[ - 1 ]
return fullpath[0:len(fullpath) - len(tmp) - 1 ]
def omitPrefix(fullpath,prefix):
# Giving /media/data/programmer/project/python/tutotial/file/test.py ,
# and prefix is Giving /media/data/programmer/project/,
# return path as python/tutotial/file/test.py
return fullpath[len(prefix) + 1 :]
mainLogic()
分享到:
相关推荐
python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记
中文 Python 笔记
python笔记
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
这份“Python笔记全,Python源码”的压缩包很可能是为了帮助初学者或有经验的开发者深入理解Python语言的核心概念和实践技巧。以下是根据标题和描述可能包含的一些关键知识点: 1. **基础语法**:Python的基础包括...
本篇Python笔记将从多个方面对Python进行介绍,包括其安装过程、基本编程概念、数据类型、基本语句、控制结构、函数使用等,旨在帮助初学者快速入门并掌握Python的基本知识。 一、安装Python 要使用Python,首先...
【Python核心笔记】深入浅出地探讨了Python这一强大且多用途的编程语言。Python以其简单易用且功能强大的特性,赢得了广大开发者的喜爱。它是一种解释型的高级编程语言,支持面向对象编程,同时也具备过程化编程的...
Python笔记完整版.md
在学习Python笔记源码时,你将接触到这些概念的实际应用,通过阅读和运行源码,可以加深对Python的理解并提升编程能力。源码中可能包括了各种示例,如函数实现、面向对象设计、数据处理流程等,这些都是掌握Python...
python自学ing,自己总结了一些python的知识点,python笔记1。
小甲鱼 Python 教程笔记 本教程笔记涵盖了 Python 的基础知识点,包括变量、字符串、列表、元组、布尔类型、逻辑运算符、循环结构、列表访问、成员资格运算符、is 运算符、引用和拷贝、列表推导式、元组的使用、...
这份"python笔记.rar"包含了对Python基础知识的详细总结,对于初学者来说是一份极好的学习资源。以下是对笔记内容的详细阐述: 一、Python基础语法 1. 变量与数据类型:Python支持多种数据类型,如整型(int)、...
在马哥教育的PYTHON相关基础笔记中,我们看到几个关键知识点: 1. **推荐书籍**:学习Python时,有几本经典教材值得参考,包括《Python Cookbook》、《Learn Python the Hard Way》、《Google's Python Class》以及...
【个人笔记本】是一款基于Python编程语言的开源笔记应用,它集成了Tkinter库,用于创建图形用户界面(GUI)。Tkinter是Python的标准GUI库,它提供了丰富的控件和布局管理器,使得开发者能够轻松地构建出功能完备的...
这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...
python笔记.md
这份《Python笔记大全》强调了Python的基础知识和高级特性,为读者提供了一份全面的学习指南。以下是对该笔记中提到知识点的详细说明: 1. Python的基本组成和模块路径: Python程序是由包组成的,这些包又由模块和...