用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写的windows服务不能启动的问题
Apr 15 Python
跟老齐学Python之不要红头文件(2)
Sep 28 Python
安装dbus-python的简要教程
May 05 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
Python生成随机密码的方法
Jun 16 Python
Python 3中print函数的使用方法总结
Aug 08 Python
获取python文件扩展名和文件名方法
Feb 02 Python
python使用pycharm环境调用opencv库
Feb 11 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 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
Laravel中间件实现原理详解
2016/10/09 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
python实现rest请求api示例
2014/04/22 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
python实现停车管理系统
2018/11/30 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
python 进程的几种创建方式详解
2019/08/29 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
个人承诺书怎么写
2014/05/24 职场文书