用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实现得到一个给定类的虚函数
Sep 28 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
Django如何配置mysql数据库
May 04 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
Python中类的创建和实例化操作示例
Feb 27 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
plt.figure()参数使用详解及运行演示
Jan 08 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 魔术方法使用说明
2009/10/20 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
初步解析Python中的yield函数的用法
2015/04/03 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
python logging日志模块的详解
2017/10/29 Python
python 实现单通道转3通道
2019/12/03 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
中秋节超市促销方案
2014/01/30 职场文书
座谈会主持词
2014/03/20 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
红色故事演讲稿
2014/05/22 职场文书