博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Note_python(02)
阅读量:2489 次
发布时间:2019-05-11

本文共 3046 字,大约阅读时间需要 10 分钟。

文件处理

文件内移动

seek()方法可以在文件中移动文件指针到不同的位置,offset字节代表相对于某个位置偏移量,默认为0,代表从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。

seek()经常用来重设文件位置指针。
eg.

>>> f.name'anaconda-ks.cfg'>>> f.next()'#version=DEVEL\n'>>> f.next()'# System authorization information\n'>>> f.seek(0)>>> f.next()'#version=DEVEL\n'

text()方法是对seek()方法的补充:他告诉你当前文件指针在文件中的位置——从文件起始算起,单位为字节。

其他

fileno()方法返回打开文件的描述符,这是一个整形,可以用在如os模块(os.read())的一些底层操作上。

eg.

>>> f = open('anaconda-ks.cfg', 'r')>>> print f.fileno()3

flush()方法会直接把内部缓冲区的数据立刻写入文件,而不是被动地等待输出缓冲区被写入。一般用在文件关闭前刷新缓冲区。

isatty()是一个布尔内建函数,当文件是一个类tty设备是返回True,否则返回False。

eg.

>>> f.isatty()False

truncate()方法将文件截取到当前文件指针位置或者到给定size,一字节为单位。可以清空文件。

换行符

print输出会在末尾自动增加一个换行符,而在语句之后增加一个逗号就可以避免这种行为。readline()和readlines()函数不会对行里的空白字符做任何处理,所以你有必要增加上逗号。如果省略逗号就会有两个换行符,其中一个是输入附带的,另外一个是print语句自动添加的。

eg.

>>> print 'Hello World!';print 'Yes, We Can!'Hello World!Yes, We Can!>>> print 'Hello World!',;print 'Yes, We Can!'Hello World! Yes, We Can!

文件内建属性

file.closed # 文件是否关闭

file.name #文件名
file.mode #打开文件的方式

文件操作

os.rename(old, new) #重命名

os.mkdir() #创建文件夹
os.remove() #删除文件
os.chdir() #切换文件夹
os.getcwd() #得到当前路径
os.rmdir() #删除文件夹

补充:

* 文件处理
mkfifo()/mknod() #创建命名管道/创建文件系统节点
remove()/unlink() #删除文件
rename()/renames() #重命名文件
*stat() [包括stat()、lstat()、xstat()] #返回文件信息
eg.

>>> import os>>> os.system('ls')anaconda-ks.cfg  fan  lustre-master.zip  test.log0>>> os.stat('anaconda-ks.cfg')posix.stat_result(st_mode=33152, st_ino=9240863, st_dev=64768L, st_nlink=1, st_uid=0, st_gid=0, st_size=955, st_atime=1513158628, st_mtime=1509810306, st_ctime=1509810306)

symlink() #创建符号链接

utime() #更新时间戳
tmpfile() #创建并打开(‘w+b’)一个新的临时文件
walk() #生成一个目录树下的所有文件名

  • 目录/文件夹

    chdir()/fchdir() #改变当前目录/通过一个文件描述符改变当前工作目录
    chroot #改变当前进程的根目录
    listdir() #列出指定目录的文件

  • 访问/权限

    access() #检验权限模式
    chmod() #改变权限模式
    chown()/lchown() #改变owner和group ID/功能相同,但不会跟踪链接
    umask() #设置默认权限模式

  • 文件描述符操作

    open() #底层的操作系统open(对于文件来说,使用标准的内建open()函数)
    read()/write() #根据文件描述符读取/写入数据
    dup()/dup2() #复制文件描述符/功能相同,但是是复制到另一个文件描述符

  • 设备号

    makedev() #从major和minor设备号创建一个原始设备号
    major()/minor() #从原始设备号获得major/minor设备号

os.path模块中的路径名访问函数

  • 分割

    basename() #去掉目标路径,返回文件名
    dirname() #去掉文件名,返回目录路径
    join() #将分离的各部分组合成一个路径名
    split() #返回(dirname(),basename())元组
    splitdrive() #返回(drivename,pathnam)元组
    splittext() #返回(filename, extension)元组

  • 信息

    getatime() #返回最近返问时间
    getctime() #返回文件创建时间
    getmtime() #返回文件最近修改时间
    getsize() #返回文件大小(以字节为单位)
    eg. >>> os.path.getsize(‘test.log’)
    48

  • 查询

    exists() #指定路径(文件或者目录)是否存在
    isabs() #指定路径是否为绝对路径
    isdir() #指定路径是否存在且为一个目录
    isfile() #指定路径是否存在且为一个文件
    islink() #指定路径是否存在且为一个符号链接
    ismount() #指定路径是否存在且为一个挂载点
    samefiel() #两个路径名是否指向一个文件

eg.

>>> os.path.exists('test.log')True>>> os.path.isfile('test.log')True>>> os.path.isdir('test.log')False>>> os.path.islink('test.log')False>>> os.system('cp test.log test01.log')0>>> os.system('ls')anaconda-ks.cfg  fan  lustre-master.zip  test01.log  test.log0>>> os.path.samefile('test.log', 'test01.log')False

命令行参数

sys.argv 是命令行参数的列表

len(sys.argv)是命令行参数的个数
sys.argv[0]是程序的名称

相关模块

bz2 #访问BZ2格式的压缩文件

csv #访问CSV文件
filecmp #用于比较目录和文件
gzip/zlib #读取GNU zip(gzip)文件(压缩需要zlib模块)
zipfile #用于读取ZIP归档文件的工具

“`

转载地址:http://hgarb.baihongyu.com/

你可能感兴趣的文章
windows缺少dll解决办法
查看>>
JPA多条件动态查询
查看>>
JPA自定义sql
查看>>
BigDecimal正确使用了吗?
查看>>
joplin笔记
查看>>
JNDI+springmvc使用
查看>>
vue+springboot分页交互
查看>>
vue+springboot打包发布
查看>>
XSL 开发总结
查看>>
beta阶段第六次scrum meeting
查看>>
SpringBoot+MybatisPlus实现批量添加的两种方式
查看>>
vue 设计结构
查看>>
Sqlerver2005+按照ID分组取前几条
查看>>
Python的编码和解码
查看>>
docker
查看>>
停车场系统安全岛设计施工要求
查看>>
Docker实战
查看>>
asp.net core结合Gitlab-CI实现自动化部署
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
查看>>
EasyNVR H5无插件摄像机直播解决方案前端解析之:关于直播页面和视频列表页面切换的问题...
查看>>