文档章节

python 文件操作

SEOwhywhy
 SEOwhywhy
发布于 06/05 21:07
字数 1299
阅读 4
收藏 0

  什么是文件?
  
  文件是操作系统提供给应用程序操作硬盘的的一个虚拟单位,用于应用程序将数据永久保存
  
  1.1文件基本操作
  
  打开文件:
  
  f = open(r'文件的路径',mode='模式',encoding='编码类型')
  
  f = open(r'a.txt',mode='r',encoding='unf-8')
  
  with open(r'a.txt',mode='r',encoding='unf-8') as f: #with,不需要使用.close()
  
  print('===>')
  
  print(f.read())
  
  读文件:
  
  data=f.read()   #读出文件所有的内容
  
  print(data)
  
  关闭文件:
  
  f.close() #回收操作系统的资源
  
  f.write()   #写
  
  f.read()    #读
  
  f.flush()   #刷新
  
  f.close()   #关闭文件
  
  默认的打开文件的编码是:当前操作系统默认的编码,win:gbk,linux:utf-8
  
  f=open('a.txt',mode='r',encoding='utf-8')
  
  print(f.read())
  
  f.close()
  
  1.2打开模式和文件操作 (t 模式)
  
  文件的打开模式: t:text文本模式,读写文件是以字符串为单位,需要指定字符编码, t模式的局限性是只能读写文本文件 b:bytes字节模式,读写文件都是以bytes为单位,不需要指定字符编码 b模式的好处的是可以读写任意类型的文件
  
  1.21 r 只读
  
  只能读取(常用),文件不存在时报错, 文件存在,光标停在文件开头
  
  f=open('a.txt',mode='r',encoding='utf-8') # mode='rt'
  
  f.write('哈哈啊哈哈啊啊 啊啊123213213123\n') # 抛出异常,不能写
  
  print(f.readable())                      #true
  
  f = open('a.txt', mode='r', encoding='utf-8')       #打印一行
  
  print(f.readline(),end='')                         #f.readline(5),打印前五个字符,空:默认打印一行
  
  f.close()                                       ##一次读一行
  
  f = open('a.txt', mode='r', encoding='utf-8')  ##读出文件所有的行存到列表中
  
  print(f.readlines())                        #['aaaaaaaaaaaaaaa eeeeeeeee\n', 'bbbbbbbbbbbbbb\n']
  
  for line in f.readlines():       #循环文件不要使用该方式,因为在文件过大的情况下有可能会撑爆内存
  
  print(line,end='')
  
  1.22w 只写
  
  写入前清空文件内容(常用), 没有文件则新建, 文件存在,光标停在文件开头
  
  f=open(r'a1.txt',mode='w',encoding='utf-8') #默认是wt
  
  f.write('第一行\n')
  
  f.write('第二行\n')
  
  f.writelines(['111111\n','222222\n',www.yuntianyul.com'333333\n'])
  
  f.write('aaaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbb\nccccccccccccccc\n')
  
  f.close()
  
  1.23 a 追加
  
  追加内容到文件末尾(常用),没有文件则新建 ,文件存在,光标停在文件末尾
  
  f = open('a.txt', mode='a', encoding='utf-8')
  
  print(f.writable())     #true
  
  f.readlines()           #报错
  
  f.write('5555555555555\n')
  
  f.writelines(['111111\n','222222\n','333333\n'])
  
  f.close()
  
  强调: 写文件换行符用\n 读文件换行符也是\n
  
  1.3 打开模式和文件操作 (b 模式)
  
  文件的打开模式b模式 强调: 1、与t模式类似不能单独使用,必须是rb,wb,ab 2、b模式下读写都是以bytes单位的 3、b模式下一定不能指定encoding参数
  
  1.31 r 只读
  
  只能读取(常用),文件不存在时报错
  
  rb模式
  
  with open('1.jpg',mode='rb') as f:
  
  data=f.read()
  
  print(type(data))
  
  print(data.decode('utf-8'))
  
  with open('db.txt',mode='rb',) as f:
  
  data=f.read()
  
  print(data.decode('utf-8')) #bytes-----unicode
  
  print(type(data))
  
  with open('1.jpg',www.yuntianyuled.cn'rb') as f:
  
  for line in f:
  
  print(line)
  
  1.32 w 只写
  
  写入前清空文件内容(常用), 没有文件则新建
  
  wb模式
  
  with open('b.txt',mode='wb') as f:
  
  msg='你好啊,吴三炮'
  
  f.write(msg.encode('gbk'))
  
  with open('b.txt',mode='wb') as f:
  
  msg='你好啊,吴三炮'
  
  f.write(msg.encode(www.cmylept.cn'utf-8'))
  
  1.33 a 追加
  
  追加内容到文件末尾(常用),没有文件则新建
  
  ab模式
  
  with open('b.txt',mode='ab') as f:
  
  f.write('你好'.encode('utf-8'))
  
  1.4 r+ 读写 / w+ 写读 / a+ 追加读写
  
  with open('b.txt',mode='r+t',encoding='utf-8') as f:
  
  print(f.readable(www.cmyLgw.cn ))         #true
  
  print(f.writable())         #true
  
  print(f.readlines())
  
  f.write('\n吴大炮你好\n')
  
  for line in f.readlines():
  
  print(line,end='')
  
  r+b 读写二进制 / w+b 写读二进制 / a+b 追加读写二进制
  
  1.5 文件修改
  
  修改文件方式一: 1、先把文件内容全部读入内存 2、然后在内存中完成修改 3、再把修改后的结果覆盖写入原文件 缺点:会在文件内容过大的情况下,占用过多的内存
  
  with open('user.txt',mode='r',encoding='utf-8') as f:
  
  data=f.read()
  
  data=data.replace('吴佩其','吴佩其[老男孩第二帅的人]')
  
  with open('user.txt',mode=www.wanhaoptdL.com'w',encoding='utf-8') as f:
  
  f.write(data)
  
  修改文件方式二:
  
  1、以读的方式打开原文件,以写的方式打开新文件 2、读一行原文内容,写入新文件, 如果该行内容是需要修改的内容,那么修改完后再写入新文件 3、删掉原文件,将新文件名重命名为原文件名
  
  import os
  
  with open('user.txt',mode='rt',encoding='utf-8') as read_f,\
  
  open('user.txt.swap',mode='wt',encoding='utf-8') as write_f:
  
  for line in read_f:
  
  if '吴佩其' in line:
  
  line=line.replace('吴佩其','吴佩其[老男汉特别特别的老]')
  
  write_f.write(line)
  
  os.remove('user.txt')
  
  os.rename('user.txt.swap','user.txt')
  
  1.6 光标
  
  with open('user.txt',www.ztyLegw.cn'r+',encoding='utf-8') as f:
  
  f.seek(9)                                  #偏移量的单位是字节
  
  print(f.tell())                            #获取当前光标位置
  
  print(f.read())
  
  with open('user.txt','r+',encoding='utf-8') as f:
  
  f.seek(9)                                  #偏移量的单位是字节
  
  print(f.tell())
  
  f.write('[老男孩第二帅的人]')

© 著作权归作者所有

SEOwhywhy
粉丝 8
博文 155
码字总数 342404
作品 0
私信 提问
Python 新功能:或将允许安全工具查看运行时操作

针对 Python 编程语言的新功能提议之一是希望为运行时添加“透明度”,并让安全和审计工具查看 Python 何时可能运行潜在危险的操作。 在当前的形式下,Python 不允许安全工具查看运行时正在执...

达尔文
2018/05/30
1K
2
简单比较Python的数据持久化操作

转自http://smartzxy.iteye.com/blog/680431 简单比较Python的数据持久化操作(一) 最近喜欢上了Python,喜欢它的简洁高效,喜欢它的“无所不能”。 Python的数据持久化操作主要是六类:普通...

alazyer
2014/05/28
582
0
python中cPickle用法例子分享

python中cPickle用法例子。 在python中,一般可以使用pickle类来进行python对象的序列化,而cPickle提供了一个更快速简单的接口,如python文档所说的:“cPickle -- A faster pickle”。 cP...

mysoftsky
2014/01/10
385
0
python 编写自动化小工具 未完成

python 编写自动化小工具 Python split() python数据类型之间的转换 str(demo) python换行写入文件 !/usr/bin/env python ecoding=utf-8 f=open(r"D:opsdevolduseroldused.txt","a+") newlin......

iOS_愛OS
2018/06/21
0
0
Centos7安装Python3.7(兼容Python2.7)

Centos7安装Python3.7(兼容Python2.7) leyex0人评论158人阅读2018-08-23 16:56:52 Centos7下已自动安装Python2.7.5,but现在经常会出现Python2和Python3兼容使用的情况,所以我现在记录下安...

linjin200
2018/09/05
245
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部