用python与文件进行交互的方法


Posted in Python onMarch 01, 2018

本文介绍了用python与文件进行交互的方法,分享给大家,具体如下:

一.文件处理

1.介绍

计算机系统:计算机硬件,操作系统,应用程序

应用程序无法直接操作硬件,通过操作系统来操作文件,进而读/写硬件中的文件。

python打开文件过程:

#打开
f=open('a.txt','r')
#通过句柄对文件进行操作
read_f=f.read()
#关闭文件
f.close()
with open('a.txt','r') as f:  #不需要关闭
f.close() #回收操作系统打开的文件
del f #回收应用程序级的变量

2.打开文件的模式

a.打开文本文件

#r,只读模式【默认模式,文件必须存在,不存在则抛出异常】
f=open('a.txt',encoding='utf-8')
data1=f.read()
print(f.readline(),end='')
print(f.readlines())
#w,只写模式【不可读;不存在则创建;存在则清空内容】
f=open('a.txt','w',encoding='utf-8')
f.write('werf')
#a,只追加写模式【不可读;不存在则创建;存在则只追加内容】
f=open('a.txt','a',encoding='utf-8')
f.write('werf\n')

b.对于非文本文件,只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式

with open('1.jpg','rb') as f_read:
  data=f_read.read()
  print(data)
with open('a.txt','rb') as f_read:
  data=f_read.read().decode('utf-8') #解码
  print(data)
with open('a.txt','wb')as f_write:
  f_write.write('adsf'.encode('utf-8'))
'''
练习,利用b模式,编写一个cp工具,要求如下:

1. 既可以拷贝文本又可以拷贝视频,图片等文件


2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target_file
'''
import sys
if len(sys.argv)!=3:
  print('usage:cp source_file target_file')
  sys.exit()
source_file,target_file=sys.argv[1],sys.argv[2]
print()
with open(source_file,'rb')as f_read,open(target_file,'wb')as f_write:
  for line in f_read:
    f_write.write(line)

3.文件内光标的移动

#以文本模式读文件,n代表的是字符的个数
with open('a.txt','r')as f_read:
  data=f_read.read(6)
  print(data)
#以b模式读文件,n代表的是字节的个数
with open('a.txt','rb')as f_read:
  data=f_read.read(6)
  print(data)
# tell:告诉当前光标的位置
with open('a.txt','r',encoding='utf-8')as f_read:
  data=f_read.read(4)
  data1=f_read.tell()
  print(data,data1)
# seek:移动光标(0:文件开头默认;1:文件当前光标;2:文件末尾)
with open('a.txt', 'r', encoding='utf-8')as f_read:
  data = f_read.seek(3)
  data1 = f_read.read()
  print(data, data1)
# 实现tail功能
import time
with open('access.log', 'rb')as f_read:
  f_read.seek(0,2)
  while True:
    line = f_read.readline()
    if line:
      print(line.decode('utf-8'),end='')
    else:
      time.sleep(1)

4.文件的修改

import os

with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
  for line in read_f:
    line=line.replace('alex','SB')
    write_f.write(line)

os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下的Mysql模块MySQLdb安装详解
Apr 09 Python
Python中subprocess模块用法实例详解
May 20 Python
Python实现的RSS阅读器实例
Jul 25 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
python中时间模块的基本使用教程
May 14 Python
Python二进制文件读取并转换为浮点数详解
Jun 25 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
从python读取sql的实例方法
Jul 21 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 #Python
python爬取m3u8连接的视频
Feb 28 #Python
python实现m3u8格式转换为mp4视频格式
Feb 28 #Python
浅谈Python中的私有变量
Feb 28 #Python
python中logging包的使用总结
Feb 28 #Python
深入理解Python爬虫代理池服务
Feb 28 #Python
python实现装饰器、描述符
Feb 28 #Python
You might like
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
JS获取时间的方法
2015/01/21 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
python发送伪造的arp请求
2014/01/09 Python
详解Python编程中time模块的使用
2015/11/20 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python事件驱动event实现详解
2018/11/21 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Apache部署Django项目图文详解
2019/07/30 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Python小白垃圾回收机制入门
2020/06/09 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
PHP面试题及答案二
2015/05/23 面试题
安全月活动总结
2014/05/05 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
部队2014年终工作总结
2014/11/27 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
小学见习报告
2015/06/23 职场文书