用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 urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
python实现黑客字幕雨效果
Jun 21 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
python+opencv实现阈值分割
Dec 26 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Django视图、传参和forms验证操作
Jul 15 Python
python把一个字符串切开的实例方法
Sep 27 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
python开发实时可视化仪表盘的示例
May 07 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
Augularjs-起步详解
2016/07/08 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
JavaScript实现留言板案例
2020/03/17 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
消防应急演练方案
2014/02/12 职场文书
世界文化遗产导游词
2015/02/13 职场文书
教师外出学习心得体会
2016/01/18 职场文书
redis 查看所有的key方式
2021/05/07 Redis
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python