# 使用路径名来获取文件名,目录名,绝对路径等
import os
path = r'F:\myProject\lean\a'
# Get the last component of the path
basename = os.path.basename(path)
# Get the directory name
dirname = os.path.dirname(path)
print(basename, dirname)
# Join path components together
join_path = os.path.join('aa', 'bb', basename)
print(join_path)
# 展开用户的主目录
expand = os.path.expanduser(path)
print(expand)
# 分离文件扩展名
extension = os.path.splitext(path)
print(extension)
# 测试一个文件或目录是否存在
flag1 = os.path.exists(path)
flag2 = os.path.isfile(path)
flag3 = os.path.isdir(path)
flag4 = os.path.islink(path)
realpath = os.path.realpath(path)
print(flag1, flag2, flag3, flag4, realpath)
# 获取元数据
# 需要考虑文件权限的问题,特别是在获取元数据时候
size = os.path.getsize(path)
ctime = os.path.getmtime(path)
print(size, ctime)
# 获取文件系统中某个目录下的所有文件列表
names = os.listdir(path)
print('-----------------------------------------------------')
def get_all_file(path, list_file):
names = os.listdir(path)
for name in names:
if os.path.isfile(os.path.join(path, name)):
list_file.append(name)
else:
get_all_file(os.path.join(path, name), list_file)
return list_file
print(get_all_file(path, [])) # 对于文件名的匹配,可能会考虑使用glob 或fnmatch 模块
import glob
pyfiles = glob.glob(r'F:\myProject\lean\a\b\*.py')
print(pyfiles) from fnmatch import fnmatch
pyfiles = [name for name in os.listdir(path) if fnmatch(name, '*.py')]
print(pyfiles) # 在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉
# tempfile 模块中有很多的函数可以完成这任务
# 创建一个匿名的临时文件
from tempfile import TemporaryFile with TemporaryFile('w+t') as f:
f.write('hello world\n')
f.write('test\n')
f.seek(0)
data = f.read()
# TemporaryFile() 、NamedTemporaryFile() 和TemporaryDirectory() 函数应该
# 是处理临时文件目录的最简单的方式了,因为它们会自动处理所有的创建和清理步骤。
# 在一个更低的级别,你可以使用mkstemp() 和mkdtemp() 来创建临时文件和目录
# 为了获取真实的位置,可以使用tempfile.gettempdir() 函数 # 序列化Python对象
# 将一个Python 对象序列化为一个字节流,以便将它保存到一个文件、存储到数据库或者通过网络传输它
# 对于序列化最普遍的做法就是使用pickle 模块
import pickle ob = {"a":1, "b":2, "c":3}
# f = open('E:/1.txt', 'wb')
# pickle.dump(ob, f)
# f.close()
s = pickle.dumps(ob)
print(s)
# 为了从字节流中恢复一个对象,使用picle.load() 或pickle.loads() 函数
f = open('E:/1.txt', 'rb')
data = pickle.load(f)
print(data)
data1 = pickle.loads(s)
print(data, data1) # 有些类型的对象是不能被序列化的。这些通常是那些依赖外部系统状态的对象,
# 比如打开的文件,网络连接,线程,进程,栈帧等等。用户自定义类可以通过提
# 供getstate () 和setstate () 方法来绕过这些限制
# 用户自定义类可以通过提供getstate () 和setstate () 方法来绕过这些限制。
# 如果定义了这两个方法,pickle.dump() 就会调用getstate () 获取序列化的对象。
# 类似的, setstate() 在反序列化时被调用。

Python--进阶处理5的更多相关文章

  1. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  2. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  3. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  4. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  5. python进阶学习笔记(一)

    python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  8. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  9. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

  10. Python进阶:如何将字符串常量转化为变量?

    前几天,我们Python猫交流学习群 里的 M 同学提了个问题.这个问题挺有意思,经初次讨论,我们认为它无解. 然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来. 万万 ...

随机推荐

  1. Maven的个性化定制

    用Maven的小伙伴都知道,Maven的宗旨是约定优于配置(Convention Over Configuration). 在宗旨的前提下Maven也提供了个性化定制的Profile,让我们看看使用方 ...

  2. Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处。用来指定播放器 1 2. <object> 标签用于包含对象,比如图像、音

    Atitit.web 视频播放器classid clsid 大总结quicktime,vlc 1. Classid的用处.用来指定播放器 1 2. <object> 标签用于包含对象,比如 ...

  3. action(二)

    RemoveSelf :消失 CCFiniteTimeAction* action = CCSequence::create( CCMoveBy::create( , ccp(,)), CCRotat ...

  4. 基于HTML5自定义文字背景生成QQ签名档

    分享一款利用HTML5实现的自定义文字背景应用,首先我们可以输入需要显示的文字,并且为该文字选择一张背景图片,背景图片就像蒙版一样覆盖在文字上.点击生成QQ签名档即可将文字背景融为一体生成另外一张图片 ...

  5. lua工具库penlight--05日期和时间

    创建和显示时间 Date类提过了简洁的使用date和time的方法.它依赖于os.date和os.time. Date对象可以通过table创建,如果os.date,同时提过了获取和设置date 成员 ...

  6. C语言 · 素数判断

     算法提高 素数判断   时间限制:1.0s   内存限制:512.0MB      编写一函数IsPrime,判断某个大于2的正整数是否为素数. 样例输入: 5样例输出:yes 样例输入: 9样例输 ...

  7. 浏览器中F5和CTRL F5的行为区别

    前言 在印象中,浏览器中的F5和刷新按钮是一样的效果,都是对当前页面进行刷新:Ctrl-F5的行为也是刷新页面,但是会清除浏览器缓存,这在前端调试时候会常用.二者真正的区别是什么呢?在stackove ...

  8. 用Netty开发中间件:高并发性能优化(转)

    用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传.因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本.Net ...

  9. mac环境搭建selenium

    前言 搭建python+selenium,mac自带python2.7,需要公司使用的python是3.x,可以自己百度安装python环境. 1. selenium安装 1. selenium的安装 ...

  10. 算法优化:rgb向yuv的转化最优算法

    朋友曾经给我推荐了一个有关代码优化的pdf文档<让你的软件飞起来>,看完之后,感受颇深.为了推广其,同时也为了自己加深印象,故将其总结为word文档.下面就是其的详细内容总结,希望能于己于 ...