Python——追加学习笔记(二)
文件处理
# 文件内移动
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.log
0
>>> 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.log
0
>>> 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归档文件的工具
Python——追加学习笔记(二)的更多相关文章
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
- webdriver(python)学习笔记二
自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...
- python基础学习笔记二之列表
1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append() #直接在结尾追加 s.insert() ...
- Python——追加学习笔记(四)
函数 1.python里的函数可以返回一个值或者对象,知识在返回一个容器对象的时候有点不同,看起来像是能返回多个对象. >>> def bar(): ... return 'abc' ...
- Python——追加学习笔记(一)
映射.字典 ## 映射类型内建函数 * dict Error: Python核心编程(第二版)p170 >>> dict([['x', 1], ['y', 2]]) {'y': 2, ...
- Python——追加学习笔记(三)
错误与异常 AttributeError:尝试访问未知的对象属性 eg. >>> class myClass(object): ... pass ... >>> m ...
- 【Python】学习笔记二:基本数据类型
变量 python的变量不需要提前声明,可以直接输入: >>> str = 'oliver' 此时,str已经被赋值字符串oliver,在赋值之前并没有提前定义与事先声明 打印值 & ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
随机推荐
- Fountains(非线段树版(主要是不太会用))
Arkady plays Gardenscapes a lot. Arkady wants to build two new fountains. There are n available foun ...
- WPF Hidden和Collapsed
对于这两种设定,其实已经提示的很清楚了 Visibility="Hidden"不显示元素,但是在布局为元素保留空间 Visibility="Collapsed" ...
- springboot(七)-系列功能配置
热部署 我们程序员在开发web项目的时候,避免不了需要将项目放到tomcat或者其他web容器中运行测试,而所有的程序员都有个习惯,从来都是以debug模式启动的(就好像谁不是这样启动就不是优秀的程序 ...
- Map接口常用实现类学习
HashMap 1.6的HashMap:数组加单向链表结构 最重要的内部类Entry,全类名是java.util.HashMap.Entry,是个静态类,实现了Map.Entry接口.HashMap. ...
- Android Zygote进程启动分析
dvm,app进程,linux进程三者关系 DVM指 dalivk 的虚拟机.每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例.而每一个 DVM 都是 ...
- 牛客网Java刷题知识点之拥塞发生的主要原因、TCP拥塞控制、TCP流量控制、TCP拥塞控制的四大过程(慢启动、拥塞避免、快速重传、快速恢复)
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 动态替换animator的研究
http://blog.csdn.net/tonnychu/article/details/49903657 http://blog.csdn.net/tlrainty/article/details ...
- nyoj 983 ——首尾相连数组的最大子数组和——————【最大子串和变形】
首尾相连数组的最大子数组和 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首 ...
- SpringBoot集成JWT 实现接口权限认证
JWT介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点 ...
- Codeforces 975D. Ghosts
Description 给出一条直线 \(a*x+b\) 上的 \(n\) 个点,每一个点有一个速度 \((v_x,v_y)\),求 \(T=[-oo,oo]\) 相交的次数乘以 \(2\) 题面 S ...