- 浏览: 309243 次
文章分类
最新评论
-
ZT71363387:
多谢,帮我解决了抄送人收不到邮件的问题
python smtplib -
dsjt:
pythonw.exe 运行后无反应。版本不匹配啊。
python+PyQT+Eric安装配置 -
dsjt:
xp 32位系统安装eric后,目录下没有 .bat文件是怎么 ...
python+PyQT+Eric安装配置
Python 3 教程二:文件,目录和路径
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".
'''
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 分隔文件和扩展名
'''
# 常用函数有三种:分隔路径,找出文件名.找出盘符(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 shutil
import os
import os.path
src = " d:\\download\\test\\myfile1.txt "
dst = " d:\\download\\test\\myfile2.txt "
dst2 = " d:/download/test/测试文件夹.txt "
dir1 = os.path.dirname(src)
print ( " dir1 %s " % dir1)
if (os.path.exists(src) == False):
os.makedirs(dir1)
f1 = open(src, " w " )
f1.write( " line a\n " )
f1.write( " line b\n " )
f1.close()
shutil.copyfile(src, dst)
shutil.copyfile(src, dst2)
f2 = open(dst, " r " )
for line in f2:
print (line)
f2.close()
# 测试复制文件夹树
try :
srcDir = " d:/download/test "
dstDir = " d:/download/test2 "
# 如果dstDir已经存在,那么shutil.copytree方法会报错!
# 这也意味着你不能直接用d:作为目标路径.
shutil.copytree(srcDir, dstDir)
except Exception as err:
print (err)
'''
知识点:
* shutil.copyfile:如何复制文件
* os.path.exists:如何判断文件夹是否存在
* shutil.copytree:如何复制目录树
'''
import os
import os.path
src = " d:\\download\\test\\myfile1.txt "
dst = " d:\\download\\test\\myfile2.txt "
dst2 = " d:/download/test/测试文件夹.txt "
dir1 = os.path.dirname(src)
print ( " dir1 %s " % dir1)
if (os.path.exists(src) == False):
os.makedirs(dir1)
f1 = open(src, " w " )
f1.write( " line a\n " )
f1.write( " line b\n " )
f1.close()
shutil.copyfile(src, dst)
shutil.copyfile(src, dst2)
f2 = open(dst, " r " )
for line in f2:
print (line)
f2.close()
# 测试复制文件夹树
try :
srcDir = " d:/download/test "
dstDir = " d:/download/test2 "
# 如果dstDir已经存在,那么shutil.copytree方法会报错!
# 这也意味着你不能直接用d:作为目标路径.
shutil.copytree(srcDir, dstDir)
except Exception as err:
print (err)
'''
知识点:
* shutil.copyfile:如何复制文件
* os.path.exists:如何判断文件夹是否存在
* shutil.copytree:如何复制目录树
'''
总结:4个函数
- os.path.dirname(path)
- os.path.exists(path)
- shutil.copyfile(src, dst)
- shutil.copytree(srcDir, dstDir)
4 实战:文件备份小程序
<!--<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()
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()
5 资源:方法详解
你可以在这里看到更多的api解释,感谢该作者: http://www.cnpython.org/docs/200/p_119.html
转:http://www.cnitblog.com/yunshichen/archive/2009/04/01/55931.html
发表评论
-
lxml.etree
2017-06-21 10:48 568http://www.cnblogs.com/bluesc ... -
Python dictdiffer模块比较两个字典
2017-03-04 17:51 3475http://dictdiffer.readthedocs. ... -
python 判断一个对象是否可迭代
2017-01-23 09:44 608如何判断一个对象是可迭代对象呢?方法是通过collectio ... -
给python交互式命令行增加自动补全和命令历史
2017-01-22 10:09 642在用户目录下新建".pythonstartup& ... -
python 字典格式化
2017-01-16 13:57 363import pprint data = {'a': ... -
python最简洁的条件判断语句写法
2017-01-11 20:11 1119这篇文章主要介绍了Python返回真假值(True or ... -
python 格式化json
2016-12-19 20:07 538#!/usr/bin/env python # -*- ... -
python下载文件的三种方法
2016-11-18 10:21 368Python开发中时长遇到要下载文件的情况,最常用的方法就是 ... -
python 格式化字典字符串
2016-11-13 15:27 309version = {'a': 1, 'b': 2, 'c' ... -
python __fatal退出函数
2016-11-13 14:41 576def __fatal(exitcode, message) ... -
Python logging
2016-09-18 18:13 451#!/usr/bin/env python # -*- ... -
思考:如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
2016-06-24 18:30 1998>>> L = ['Hello', 'Wor ... -
去除重复字符串并保持原来顺序输出
2016-06-23 17:53 1152#!/usr/bin/env python # -*- c ... -
Python getpass 输入密码
2016-03-28 20:35 585Python有个自带的getpass模块: impor ... -
优秀Python学习资源收集汇总(强烈推荐)
2016-02-29 15:15 640Python是一种面向对象、直译式计算机程序设计语言。它的 ... -
python 模拟登录iteye博客
2016-01-07 11:32 603#!/usr/bin/python # -*- codi ... -
Python之路【目录】
2016-01-02 00:41 598http://www.cnblogs.com/wupeiq ... -
Python 正则 提取由start开始到end结束的行
2015-12-16 13:51 649import re s=open(r"bug.t ... -
Python文件替代fileinput模块
2015-12-12 12:05 1344Python文件替代fileinput模块 一,文件替代: ... -
linecache,想读某行周围的哪行都可以
2015-12-12 12:04 680import linecache x=linecache ...
相关推荐
【Python学习教程】在目录中组织文件的脚本(字母顺序) 以下是一个Python脚本示例,它可以按字母顺序自动组织文件并将它们存储在目录中。这里我们使用os和shutil模块来进行文件操作。 在这个代码示例中,我们首先...
3、Python文件 4、Python日期 5、Python利器 6、Python画图 7、Python实战 施工中: Python基础算法 python 机器学习,包括机器学习的基础概念和十大核心算法以及Sklearn和Kaggle实战的小例子 PyQt制作GUI Flask前端...
3. 文件操作:介绍Python的文件操作、读写文件、文件路径等知识。 4. 正则表达式:介绍正则表达式的基本语法、匹配模式、替换等操作。 5. 网络编程:介绍Python的网络编程、socket编程、TCP/UDP协议等知识。 6. ...
9.8 tempfile模块: 生成临时文件和临时目录 146 十、面向对象编程 147 10.1 面向对象程序设计思想 147 10.2 面向对象相关术语 148 10.3 类与对象的基本使用 148 10.4 类封装机制 156 10.5 类继承机制 157 10.6 父类...
这份文件记录了我在接下来的100天里,将会学习和掌握 Python 编程的全过程。从基本语法和数据结构开始,逐步深入到函数、面向对象编程、文件操作等高级主题。通过实际项目和练习,我将不断提升自己的编程技能,直至...
在这个语句后面输入你要处理的大批文件路径位置,win11系统只需右键选择copy as path(复制路径)即可复制路径,粘贴输入到这个语句后面即可;win10或者win7等只要右键属性就可看到路径,复制即可。 2.第一条输入...
【Python学习教程】编写脚本来压缩文件夹和文件以下是使用Python编写脚本来压缩文件夹和文件的步骤: 导入必要的模块 在开始编写代码之前,需要导入Python的zipfile模块,该模块提供了用于创建、读取和解压缩ZIP...
相对路径和绝对路径的概念
在执行django-admin startproject命令创建项目时会自动生成该文件 本节主要内容 基本配置 模板配置 数据库配置 静态资源配置 PythonWeb开发基础教程-第2章-Django配置全文共21页,当前为第3页。 2.1.1 基本配置 ...
3.自动获取某路径下文件列表; 4.PIL截屏功能 找色点击功能思路: 抓取当前屏幕快照,指定一个坐标和颜色,如果坐标的颜色符合,则点击坐标. 1.抓取当前屏幕快照ImageGrab.grab()返回一个模式为“RGB”的图像. 2.方法im...
Python3基础教程 基础教程13-写⼊⽂件 写⼊⽂件 前⾯介绍了函数,这篇我们就利⽤Python 内构函数open来写⼊字符串到txt⽂件⾥。 直接看demo.py # 练习如何写⼈⽂件 text = "Sample Text to Save \nNew Line" ''' 调...
Python基础教程详解 【第31课】 读文件 之前写的程序绝大多数都依赖于从命令行输入。假如某个程序需要输入很多数据,比如 一次考试的全班学生成绩,再这么输就略显痛苦了。一个常见的办法就是把学生的成绩 都保存在...
Python Web开发基础教程(Django版) PythonWeb开发基础教程-第3章-URL分发全文共37页,当前为第1页。 第3章 URL分发 本章主要内容: URL配置 URL参数传递 反向解析URL URL 命名空间 PythonWeb开发基础教程-第3章-...
【Python⼊门教程】第68篇读取⽂本⽂件 本篇开始我们将会学习 Python 操作⽂件的⽅法,⾸先是如何读取⽂本⽂件。 快速参考 以下代码演⽰了如何从 readme.txt ⽂件中读取全部⽂本内容: with open('readme.txt') as f...
Python Web开发基础教程(Django版) PythonWeb开发基础教程-第3章-URL分发(1)全文共37页,当前为第1页。 第3章 URL分发 本章主要内容: URL配置 URL参数传递 反向解析URL URL 命名空间 PythonWeb开发基础教程-第3章...
Python标准库01 正则表达式 (re包) - Vamei ...Python标准库03 路径与文件 (os) Python标准库04 文件管理 (部分os包,shutil包) - Vamei - 博客园 Python标准库05 存储对象 (pickle包,cPickle包) - Vamei - 博客园 ...
直接用wheel安装即可,cvxpy最后安装,注意上面的包对应的是python3.8版本。如果环境是别的版本,请自行到https://www.lfd.uci.edu/~gohlke/pythonlibs/下载对应的scipy,ecos,...pip install <对应版本.whl文件的路径>
python安装教程和Pycharm安装详细教程,分享给大家。 首先我们来安装python 1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行...
安装时可选默认安装和自定义安装,建议用户选择自定义安装,自己选择安装路径。 Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断...
python教程全解 白手起家,从头开启python的开发环境搭建。 一. 如何安装Python 在https://www.python.org/下载安装包。 下载下来一个exe文件,直接双击运行。 选择Install Now,立即安装。 配置环境变量:右键...