用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使用百度翻译进行中翻英示例
Apr 14 Python
Python中实现参数类型检查的简单方法
Apr 21 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
详解Python中类的定义与使用
Apr 11 Python
Python中的heapq模块源码详析
Jan 08 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
pytorch中的transforms模块实例详解
Dec 31 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 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
PHP中date()日期函数有关参数整理
2011/07/19 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript中实现块作用域的方法
2010/04/01 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python 多线程实现检测服务器在线情况
2015/11/25 Python
Python作用域用法实例详解
2016/03/15 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python常用断言函数实例汇总
2020/11/30 Python
python实现学生通讯录管理系统
2021/02/25 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
农业大学毕业生的个人自我评价
2013/10/11 职场文书
劳资员岗位职责
2013/11/11 职场文书
最新教师自我评价分享
2013/11/12 职场文书
机关作风建设心得体会
2014/10/22 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL
分享Python异步爬取知乎热榜
2022/04/12 Python