对文件的操作

1、打开文件,获取句柄

2、根据句柄操作文件

3、关闭文件

现有文档 poem.txt

一天很短,
短得来不及拥抱清晨,
就已经手握黄昏。 一年很短,
短得来不及细品初春殷红窦绿,
就要打点素裹秋霜。 一生很短,
短的来不及享用美好年华,
就已经身处迟暮。 总是经过的太快,
领悟的太晚,
我们要学会珍惜。
珍惜人生路上的亲情、友情、
同事情、同学情、朋友情。
一旦擦身而过,
也许永不邂逅

  对文件的基础操作

 R = open('poem.txt', 'r')  #以只读的发方式打开文件,可以不加'r',默认是只读

 first_line = R.readline() #读取文件第一行,返回一个list

 print(first_line)

 Res = R.read() #获取除了第一行外余下的段落

 print(Res)

 R.close()

打开文件的模式

 r   #只读(默认)

 w   #只写【不可读,不存在则创建,存在则删除内容】

 a   #追加【不可读,不存在则创建,存在则只追加内容】

‘+’ 表示可以同时读写

r+ [可读、可写、可追加,如果打开的文件不存在,则报错] 2w+ [写读模式,已经存在的内容清空,可以读到写的内容] a+ [追加读写模式,不存在则创建,存在则只追加内容]

文件的操作方法

 R = open('poem.txt', 'r+', encoding = 'utf-8')

 R.readline()      #读第一行

 R.readable()      #判断文件是否可读,返回一个布尔类型

 R.writable()      #判断文件是否可写,返回一个布尔类型

 R.encoding        #打印文件编码格式

 R.read()          #读取所有文件内容,如果文件过大,慎重使用

 R.readlines()     #读取所有文件,返回一个list,元素是每行内容,慎重使用

 R.tell()          #获取当前文件的指针指向

 R.seek()          #把当前文件指向某个指针

 R.write('短')     #写入当前内容

 R.flush()         #写入文件后,立即从内存将内容写到磁盘

 R.truncate()      #清空文件内容

 R.readlines(['短', '俄罗斯']) #将一个列表写入

 R.close()         #关闭文件

大文件的高效操作方法

 R = open('poem.txt')

 for line in R:

     print(line)

with 使用

 with open('poem.txt') as P:

     for line in P:

     print(line)

 with open('poem.txt') as  Pr, with open('poem_bak.txt', 'w') as Pw:

     for line in Pr:

     Pw.write(line)

集合:也是一种数据类型,特点是无序

 number = [1, 2, 4, 5, 2, 4, 6]

 s_number = set(number)                       #列表转变成集合

 number1 = set([1, 2, 4, 5, 2, 4, 6])         #同上

 number2 = {'linda', 'bluce', 'jack', 'rose'} #直接定义集合

集合的操作

 number1 = {1, 3, 4, 5, 2, 8}

 number2 = {2, 4, 9, 1}

 number3 = {1, 4, 2}

 print(number1.intersection(number2))    #取交集

 print(number1 & number2)  #取交集

 print(number1.union(list2))    #取并集

 print(number1 | number2)     #取并集

 print(number1.difference(number2)) #取差集,number1中存在,number2中不存在

 print(number1 - number2)  #取差集

 print(number3.issubset(number1))  #判断number3是不是number1的子集

 print(number1.issuperset(number3))  #判断number1是不是number3的父集

 print(number1.isdisjoint(number2))  #判断是否有交集

 print(number1.symmetric_difference(number2)) #对称差集,输出两个集合都没有的值

 print(number1 ^ number2)  #同上

 number1.add(12)   #添加元素

 number1.update([24, 25, 26])

 number1.remove(2)  #移除

 number1.pop() #随机删除,并返回删除元素

 number.discard('tom')  #存在删除,不存在不做处理

最新文章

  1. 关于Java中的transient关键字
  2. linux下命令行操作快捷键及技巧
  3. OpenVpn简单架设
  4. jsonp解决跨域
  5. 2016HUAS_ACM暑假集训4K - 基础DP
  6. 头像上传,拖拽,裁切(HTML5)版本
  7. 30套免费的响应式 HTML5 & CSS3 模板下载
  8. (转)Block的使用
  9. 关于打开MTK_SDCARD_SWAP 宏后MTK目前升级方案和 关于打开MTK_SHARED_SDCARD宏后MTK目前升级方案
  10. [原]Python Web部署方式总结
  11. c实例_挑战程序竞赛,蚂蚁
  12. [jstl] forEach标签使用
  13. Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)
  14. ACM高精度加减乘除模板
  15. Ribbon整合Eureka组件,以实现负载均衡
  16. oracle学习笔记(七) 预编译Statement介绍与使用
  17. 面向对象原生JavaScript案例炫彩小球
  18. Ubuntu 18.04 安装MySQL
  19. centos 7 中安装 mysql 5.7
  20. React Native中常用ES6语法

热门文章

  1. 在线输入RGB更改背景色
  2. windows远程桌面访问ubuntu12.04
  3. es6+最佳入门实践(13)
  4. 转:java 帐号激活与忘记密码 实例
  5. 【Foreign】置换 [数论][置换]
  6. bzoj4602 [Sdoi2016]齿轮
  7. C# MVC 页面面包屑以及相应的权限验证操作
  8. TCP/IP Http的区别
  9. WScript.Shell对象的 run()和exec()函数使用详解
  10. StringUtils工具类的使用