Python其实很简单 第十六章 目录管理
为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。
创新互联建站2013年至今,是专业互联网技术服务公司,拥有项目做网站、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元逊克做网站,已为上家服务,为逊克各地企业和个人服务,联系电话:18980820575
16.1路径
路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件。
这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。
在Python中,可以导入 os模块 来进行目录操作。
1、获取当前工作目录getcwd()函数
例:
import os
print(os.getcwd())
运行结果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38
这个路径是当前Python IDLE所在的地址。
2、获取文件的绝对路径abspath()函数
abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:
import os
print(os.path.abspath(r'test.txt'))
运行结果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt
16.2 目录操作类函数
1、判断目录是否存在exists()函数
exists()函数是os模块的子模块path中的函数。使用方法举例如下:
import os
print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))
输出结果:
True
2、创建目录mkdir()函数和makedirs()函数
mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别。
例1:
import os
path='d:test'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
如果目录d: est已存在,则不再创建;若不存在,则创建。
例2:
import os
path='d:testtest1test11'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
虽然目录d: est已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d: est est1 est11目录。
mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。
3、删除目录函数rmdir()函数
rmdir()函数是由os模块提供的。
例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:
import os
os.rmdir('d:testtest1test11')
如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d: est目录下含有有子目录,则不能对其进行如下删除操作。
import os
os.rmdir('d:test')
此时,会出现如下错误提示:
Traceback (most recent call last):
File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in
os.rmdir('d:test')
OSError: [WinError 145] 目录不是空的。: 'd:test'
4、删除非空目录函数rmtree()函数
rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d: est目录及其下的子目录和文件,可用如下代码:
import shutil
shutil.rmtree('d:test')
5、遍历目录walk()函数
walk()函数是由os模块提供的。
语法格式:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。
例:遍历d: est目录及其子目录下的所有子目录和文件:
d: est目录及其下的子目录和文件
import os
path='d:test'
tups=os.walk(path) # 函数walk()的返回值为三元组
for root,dirs,files in tups: # 遍历这个三元组
for name in dirs: #遍历存放目录值的元组
print('dir:',os.path.join(root,name))
for name in files: #遍历存放文件名值的元组
print('file:',os.path.join(root,name))
运行结果如下:
dir: d: est est1
dir: d: est est1 est11
dir: d: est est1新建文件夹
file: d: est est1新建文本文档.txt
file: d: est est1 est11新建文本文档.txt
python中 什么是top
Python是一种高级的程序设计语言。
如果你用过basic、VB那么你可以将它认为是在各种平台下的basic,因为它像basic一样简单易学,但是它也不同于basic,最在的不同,当然是python的功能强大和它的优秀设计了,最重要的是它是开放源代码产品,使用它开发的程序不必为许可证而烦恼了。要知道当年比尔曾经以500美元的天价发放BASIC的使用许可证呢。然后basic能够做到的事情实在是太少了。包括今天的VB它能够做到的事情也是很有限的。而Python,你根本不用怀疑它的功能,网络编程,web程序程序设计,游戏编程,图像编程,数据库编程,所有的编程领域你都可以找到它的身影。总而言之:Python是一种高级的程序设计语言,它也是一种面向对象的程序设计语言,它可以帮我们快速的解决我们的枯燥的编程工作。
Python, perl ,php:
perl一直是UNIX系统管理员的利器,当然这最得益于它的文本处理强大功能和CPAN这个网络提供了各行各业的相应的解决方案了,它一直是黑客最喜欢的语言。它简练,功能强大,但是写的程序非常的难懂。而且支持多线程并不理想,用perl并不是写大型程序的最好选择,有人会当机,但是我没有试验过。现在有了python,UNIX系统管理员和UNIX应用系统开发人员就多了一种选择了,加载re模块,python同样可以处理复杂文本需求。php这门语言也是我的最爱,它和python一样简单,甚至要更简单,因为它专注于web开发,这一点我想是值得肯定的。无论是perl,python,java或者是asp比起php(在开发web领域方面)它们都是大大的不如。有人说java好,我想这是不一定的。之所以说java好,是因为有很多的大软件公司支持它,有相应的解决方案,但是在开发效率和稳定性上java不一定就比php强多少,有人批评说php对oop支持不好,其实oop不一定是解决问题的最好办法。而且随着php5的推出,java在oop方面的优势几乎是不存存了。而java赖以成名的跨平台更是可笑:php,perl,python的跨平台特性都比java强了不知道多少。
python top.eval(package require Tix)
eval是计算一个表达式用的。
如果要执行一句需要用exec。
不过top这个对象的eval含义也许不是这样子。
从表面上看top.eval(package
require
Tix)这句话,如果按python语法来执行应该是这样
先计算package
require
Tix,然后将值传递给top.eval
我试着执行了一次,
top.eval(package
require
Tix),
在python2.7上无法执行。
但是top.eval('package
require
Tix'),
可以执行。
返回8.4.3
但是eval('package
require
Tix')
不能执行。
最终结论是这样子。
top.eval是Tk对象的一个特殊函数。
用于检查包的版本号。
‘package
require
Tix'这一句话是TCL语言的语法。因为Tkinter本身就是TCL的库,只是被python拿来用。
分享名称:python中top函数,python中top函数输出
新闻来源:http://scgulin.cn/article/hcciss.html