用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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
Python 加密与解密小结
Dec 06 Python
numpy.random模块用法总结
May 27 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
Python networkx包的实现
Feb 14 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
python中PyQuery库用法分享
Jan 15 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
php中time()和mktime()方法的区别
2013/09/28 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
js中的string.format函数代码
2020/08/11 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python中Numpy mat的使用详解
2019/05/24 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Python如何定义接口和抽象类
2020/07/28 Python
python3中编码获取网页的实例方法
2020/11/16 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
保险公司晨会主持词
2014/03/22 职场文书
医学专业自荐信
2014/06/14 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
2014年司法所工作总结
2014/11/22 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书