用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 初始化多维数组代码
Sep 06 Python
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
python处理csv数据的方法
Mar 11 Python
Python中的默认参数详解
Jun 24 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
对python中if语句的真假判断实例详解
Feb 18 Python
在python里从协程返回一个值的示例
Feb 19 Python
django-allauth入门学习和使用详解
Jul 03 Python
python zip()函数使用方法解析
Oct 31 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python的Django框架中的Context使用
2015/07/15 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
食品销售计划书
2014/04/26 职场文书
工厂标语大全
2014/10/06 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
MySQL Server 层四个日志
2022/03/31 MySQL