文件处理

  1. # 文件内移动
  2. seek()方法可以在文件中移动文件指针到不同的位置,offset字节代表相对于某个位置偏移量,默认为0,代表从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。
  3. seek()经常用来重设文件位置指针。
  4. eg.
  5. >>> f.name
  6. 'anaconda-ks.cfg'
  7. >>> f.next()
  8. '#version=DEVEL\n'
  9. >>> f.next()
  10. '# System authorization information\n'
  11. >>> f.seek(0)
  12. >>> f.next()
  13. '#version=DEVEL\n'
  14. text()方法是对seek()方法的补充:他告诉你当前文件指针在文件中的位置——从文件起始算起,单位为字节。
  15. # 其他
  16. fileno()方法返回打开文件的描述符,这是一个整形,可以用在如os模块(os.read())的一些底层操作上。
  17. eg.
  18. >>> f = open('anaconda-ks.cfg', 'r')
  19. >>> print f.fileno()
  20. 3
  21. flush()方法会直接把内部缓冲区的数据立刻写入文件,而不是被动地等待输出缓冲区被写入。一般用在文件关闭前刷新缓冲区。
  22. isatty()是一个布尔内建函数,当文件是一个类tty设备是返回True,否则返回False
  23. eg.
  24. >>> f.isatty()
  25. False
  26. truncate()方法将文件截取到当前文件指针位置或者到给定size,一字节为单位。可以清空文件。
  27. ## 换行符
  28. print输出会在末尾自动增加一个换行符,而在语句之后增加一个逗号就可以避免这种行为。readline()和readlines()函数不会对行里的空白字符做任何处理,所以你有必要增加上逗号。如果省略逗号就会有两个换行符,其中一个是输入附带的,另外一个是print语句自动添加的。
  29. eg.
  30. >>> print 'Hello World!';print 'Yes, We Can!'
  31. Hello World!
  32. Yes, We Can!
  33. >>> print 'Hello World!',;print 'Yes, We Can!'
  34. Hello World! Yes, We Can!
  35. ## 文件内建属性
  36. file.closed # 文件是否关闭
  37. file.name #文件名
  38. file.mode #打开文件的方式
  39. ## 文件操作
  40. os.rename(old, new) #重命名
  41. os.mkdir() #创建文件夹
  42. os.remove() #删除文件
  43. os.chdir() #切换文件夹
  44. os.getcwd() #得到当前路径
  45. os.rmdir() #删除文件夹
  46. 补充:
  47. * 文件处理
  48. mkfifo()/mknod() #创建命名管道/创建文件系统节点
  49. remove()/unlink() #删除文件
  50. rename()/renames() #重命名文件
  51. *stat() [包括stat()、lstat()、xstat()] #返回文件信息
  52. eg.
  53. >>> import os
  54. >>> os.system('ls')
  55. anaconda-ks.cfg fan lustre-master.zip test.log
  56. 0
  57. >>> os.stat('anaconda-ks.cfg')
  58. 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)
  59. symlink() #创建符号链接
  60. utime() #更新时间戳
  61. tmpfile() #创建并打开(‘w+b’)一个新的临时文件
  62. walk() #生成一个目录树下的所有文件名
  63. * 目录/文件夹
  64. chdir()/fchdir() #改变当前目录/通过一个文件描述符改变当前工作目录
  65. chroot #改变当前进程的根目录
  66. listdir() #列出指定目录的文件
  67. * 访问/权限
  68. access() #检验权限模式
  69. chmod() #改变权限模式
  70. chown()/lchown() #改变owner和group ID/功能相同,但不会跟踪链接
  71. umask() #设置默认权限模式
  72. * 文件描述符操作
  73. open() #底层的操作系统open(对于文件来说,使用标准的内建open()函数)
  74. read()/write() #根据文件描述符读取/写入数据
  75. dup()/dup2() #复制文件描述符/功能相同,但是是复制到另一个文件描述符
  76. * 设备号
  77. makedev() #从major和minor设备号创建一个原始设备号
  78. major()/minor() #从原始设备号获得major/minor设备号
  79. ## os.path模块中的路径名访问函数
  80. * 分割
  81. basename() #去掉目标路径,返回文件名
  82. dirname() #去掉文件名,返回目录路径
  83. join() #将分离的各部分组合成一个路径名
  84. split() #返回(dirname(),basename())元组
  85. splitdrive() #返回(drivename,pathnam)元组
  86. splittext() #返回(filename, extension)元组
  87. * 信息
  88. getatime() #返回最近返问时间
  89. getctime() #返回文件创建时间
  90. getmtime() #返回文件最近修改时间
  91. getsize() #返回文件大小(以字节为单位)
  92. eg. >>> os.path.getsize('test.log')
  93. 48
  94. * 查询
  95. exists() #指定路径(文件或者目录)是否存在
  96. isabs() #指定路径是否为绝对路径
  97. isdir() #指定路径是否存在且为一个目录
  98. isfile() #指定路径是否存在且为一个文件
  99. islink() #指定路径是否存在且为一个符号链接
  100. ismount() #指定路径是否存在且为一个挂载点
  101. samefiel() #两个路径名是否指向一个文件
  102. eg. >>> os.path.exists('test.log')
  103. True
  104. >>> os.path.isfile('test.log')
  105. True
  106. >>> os.path.isdir('test.log')
  107. False
  108. >>> os.path.islink('test.log')
  109. False
  110. >>> os.system('cp test.log test01.log')
  111. 0
  112. >>> os.system('ls')
  113. anaconda-ks.cfg fan lustre-master.zip test01.log test.log
  114. 0
  115. >>> os.path.samefile('test.log', 'test01.log')
  116. False
  117. ## 命令行参数
  118. sys.argv 是命令行参数的列表
  119. len(sys.argv)是命令行参数的个数
  120. sys.argv[0]是程序的名称
  121. ## 相关模块
  122. bz2 #访问BZ2格式的压缩文件
  123. csv #访问CSV文件
  124. filecmp #用于比较目录和文件
  125. gzip/zlib #读取GNU zip(gzip)文件(压缩需要zlib模块)
  126. zipfile #用于读取ZIP归档文件的工具

Python——追加学习笔记(二)的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  2. webdriver(python)学习笔记二

    自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...

  3. python基础学习笔记二之列表

    1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append()  #直接在结尾追加 s.insert()  ...

  4. Python——追加学习笔记(四)

    函数 1.python里的函数可以返回一个值或者对象,知识在返回一个容器对象的时候有点不同,看起来像是能返回多个对象. >>> def bar(): ... return 'abc' ...

  5. Python——追加学习笔记(一)

    映射.字典 ## 映射类型内建函数 * dict Error: Python核心编程(第二版)p170 >>> dict([['x', 1], ['y', 2]]) {'y': 2, ...

  6. Python——追加学习笔记(三)

    错误与异常 AttributeError:尝试访问未知的对象属性 eg. >>> class myClass(object): ... pass ... >>> m ...

  7. 【Python】学习笔记二:基本数据类型

    变量 python的变量不需要提前声明,可以直接输入: >>> str = 'oliver' 此时,str已经被赋值字符串oliver,在赋值之前并没有提前定义与事先声明 打印值 & ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

随机推荐

  1. Python-append()/extend()

    append()向列表尾部添加一个新的元素,只接受一个参数 extend()只接受一个列表作为参数,将参数中的每个元素都添加到原列表 append()用法示例: >> mylist = [ ...

  2. HDU - 3652 数位DP 套路题

    题意:统计能被13整除和含有13的数的个数 解法没法好说的..学了前面两道直接啪出来了 PS.HDU深夜日常维护,没法交题,拿网上的代码随便对拍一下,输出一致 #include<bits/std ...

  3. DictionaryHelper2

    /// <summary> /// DictionaryHelper /// </summary> public static class DictionaryHelper { ...

  4. 日志logback

    http://tengj.top/2017/04/05/springboot7/ ------------------ logback使用指南. 公司配置 <?xml version=" ...

  5. Ubuntu系统里如何正确卸载oracle-j2sdk1.6(图文详解)

    问题来源 因为,我在安装clouder manager5.X的时候,默认是需要oracle-j2sdk1.7. 它4.X时,才是1.6的. 若你还是在用clouder manager4.X版本的话,需 ...

  6. zookeeper 节点信息

    使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段: czxid. 节点创建时的zxid. mzxid. 节点最新一次更新发生时的zxid. ctim ...

  7. TOJ 3486 Divisibility

    Description On the planet Zoop, numbers are represented in base 62, using the digits 0, 1, . . . , 9 ...

  8. SpringBoot | 第三十章:Spring-data-jpa的集成和使用

    前言 在前面的第九章:Mybatis-plus的集成和使用章节中,介绍了使用ORM框架mybatis-plus进行数据库的访问.今天,我们来简单学习下如何使用spring-data-jpa进行数据库的 ...

  9. 1个示例 学会 mvc 常用标签

    HtmlHelper用法大全3:Html.LabelFor.Html.EditorFor.Html.RadioButtonFor.Html.CheckBoxFor  @Html.***For:为由指定 ...

  10. 8、列表:ion-list

    1.基本样式 no-lines 属性 隐藏列表项之间的分割符 inset 属性 去掉 ion-list的 外边框. 默认 的 ion-list 是有外边框的.   /* ---示例代码----*/ & ...