35-36Python 学习笔记 —— OS模块常用接口

文件系统模块:OS

目录 的属性和方法

getcmd() : 获取当前工作目录

chdir() : 改变当前工作目录

chroot() : 设定当前进程的根目录

listdir() : 列出指定目录下的所有文件名

mkdir() : 创建指定目录

makedirs() : 创建多级目录

rmdir() : 移除目录

removedirs() : 删除多级目录

文件 的属性和方法

mkfifo() : 创建命名管道,先进先出管道

mknod() : 创建设备文件

remove() : 删除文件

unlink() : 删除文件

rename() : 重命名

stat() : 返回文件状态信息

symlink(src,dst) : 创建一个符号链接 os.symlink('test2.txt','test2.symlink')

utime() : 更新文件时间戳

tmpfile() : 创建并打开(w+b)一个新的临时文件

walk() :  目录树生成器

           g1. = os.walk('/tmp') 生成器,g1.next()

访问权限 的属性和方法

access('test.txt',useID) :  判定某个指定用户是否有访问权限

chmod('test.txt',0640) : 修改权限

chown() : 修改属主、属组。

umask() :  设置默认权限模式

文件描述符 操作

open() : 底层操作系统的open,相当于库中的open()函数,打开文件。

read ()

write()

设备文件:

makedev() :根据指定的主设备号,次设备号创建设备。mknod() : 创建设备文件

major() : 从指定的设备获取主设备号

minor() : 从指定的设备获取次设备号

OS.path() 子模块  跟文件路径相关

import os.path

实现文件路径的字符串管理

.basename() : 路径基名

.dirname() : 路径目录名

.join() : 交叉连接

.split() : 返回dirname() 、basename() 元组

.splitext() : 返回(filename,extension)元组

信息

.getatime() : 返回指定文件的最近一次访问时间

.getctime() : 

.getmtime()

.getsize() : 返回文件的大小

查询

exists() : 判断指定文件是否存在

isabs() : 判断指定的路径是否为绝对路径

isdir() : 是否为目录

isfile() : 是否为文件

islink() : 是否符号连接

ismount() : 是否为挂载点

samefile() : 两个路径是否指向了同一个文件

练习

1、判断文件是否存在,存在着打开

让用户通过键盘反复输入多行数据

追加保存至次文件中

脚本:

import os
import os.path


filename = '/tmp/test.txt'

if os.path.isfile(filename):
    f1 = open(filename,'a+')

while True:
    line = raw_input('Enter something>')
    if line == 'q' or line = 'quit':
        break
    f1.write(line+'\n')

f1.close()

2、把字典写入文件中

对象持久存储:

pickle模块:能够将内存中的对象持久化存入文件中

marshal模块

 

DBM模块接口(存储在数据库):仅仅把数据存储在数据库中,不能实现扁平化或流式化

shelve模块:既可以实现流式化,又能实现存储在数据库中

 

# pickle 模块的使用:能够将内存中的对象持久化存入文件中

d1 = {'x':123,'y':567,'z':'hello magedu.com'}
print(d1)

f5 = open('/tmp/dfile.txt','a+')
f5.write(d1)   # 无法写入

#### 把对象流式化工具 pickle模块:能够将内存中的对象持久化存入文件中

# 把d1 写入 f5
pickle.dump(d1,f5)

# 把d1缓存写入文件dfile.txt
f5.flush()

[DOS命令查看写入结果
cd /tmp
ls
file dfile.txt]

f5.close()

# 重新读取
f6 = open('/tmp/dfile.txt','r')

# 开始加载数据
d2 = pickle.load(f6)

print(d2)


 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Python,数据分析,python)