用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 Requests 基础入门
Apr 07 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
基于django channel实现websocket的聊天室的方法示例
Apr 11 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
python中的decimal类型转换实例详解
Jun 26 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
Django 实现图片上传和下载功能
Dec 31 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
python 爬取京东指定商品评论并进行情感分析
May 27 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下几种删除目录的方法总结
2007/08/19 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python单元和文档测试实例详解
2019/04/11 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
python识别验证码图片实例详解
2020/02/17 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
python解释器安装教程的方法步骤
2020/07/02 Python
pip install命令安装扩展库整理
2021/03/02 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
植物生产学专业求职信
2014/08/08 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android