用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的13个原因
Dec 07 Python
深入浅析Python中的yield关键字
Jan 24 Python
python取代netcat过程分析
Feb 10 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
Python设计模式之原型模式实例详解
Jan 18 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
python列表的逆序遍历实现
Apr 20 Python
keras 权重保存和权重载入方式
May 21 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
python基于exchange函数发送邮件过程详解
Nov 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
详谈js模块化规范
2017/07/07 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
python求pi的方法
2014/10/08 Python
Python入门篇之面向对象
2014/10/20 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
详解Python打包分发工具setuptools
2019/08/05 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
python3爬虫中异步协程的用法
2020/07/10 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
初中生三年学习生活的自我评价
2013/11/03 职场文书
服装设计师求职信
2014/06/04 职场文书
条幅标语大全
2014/06/20 职场文书
运动与健康自我评价
2015/03/09 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技