文件处理

 打开文件,得到文件句柄并赋值给一个变量
f=open('a.txt','r',encoding='utf-8')#默认打开的方式为r指的是文本文件,全名为‘rt’#w文件方式指的是如果有a.txt就覆盖,
没有a.txt文件就创建,如果是print(f.weitable()),指的是判断是可写的,如果是w就是True,r就是False
 格式w
f=open('b.txt','w',encoding='utf-8')
print(f.writable())
f.close
写入文件文件的事例
 格式一
f=open('b.txt','w',encoding='utf-8')
f.write('1111\n345345345')
f.close
格式二
f=open('b.txt','w',encoding='utf-8')
f.write('1111\n')
f.write('678678678\n')
f.close
格式三
f=open('b.txt','w',encoding='utf-8')
f.writelines(['3333\n555555'])#以元组或者列表的形式写入
f.close
格式四
w写的时候指的是从文件的开头写,文件不存在创建
f=open('b.txt','w',encoding='utf-8')#
f.write('456456\n')
f.close
a:文件不存在则创建,文件存在那么在打开文件后立刻将光标移动到文件末尾,进行追加写
f=open('b.txt','a',encoding='utf-8')
f.write('567567\n')
f.close

#r:读
# f=open(r'b.txt','r',encoding='utf-8')
# # print(f.read())#把文件内容都读到内存中,只限有文件小的文件
# # print(f.readlines())#指的是读完放到列表中
# print(f.readline(),end='')#这个指的是一条条的读
# print(f.readline(),end='')
# f.close()
一行行的读,可以用循环,while或for
with open('b.txt','r',encoding='utf-8') as f:#w写的时候指的是从文件的开头写
while True:
line=f.readline()
if len(line)==:break
print(line)
用for#从文件中循环取出多个值
for line in f:
  print(line)

 #b:bytes(二进制),rb可以读文本文件,也可以读图片(建议用这个)
with open('b.txt', 'rb') as f:#文本文件可以变回输出的文件中的内容用decode('utf-8')
print(f.read().decode('utf-8'))
with open('微信图像.jpg', 'rb') as f:
print(f.read()) #with open('b.txt', 'wb') as f:
  f.write('hello world'.encode('utf-8'))

# with open('b.txt','ab') as f:
# res='哈哈哈'.encode('utf-8')
# print(res,type(res))
# f.write(res)

 cp命令
源文件大小
文件打开模式问题
import sys#倒入模块
5 #print(sys.argv)#接收脚本执行时给脚本传的参数,指的是吧py文件拿到命令行执行,py文件后面写上参数
_,src_file,dst_file=sys.argv
with open(src_file,'rb') as read_f,\
open(dst_file,'wb') as write_f:
# data=read_f.read()
# write_f.write(data)#源文件大容易被干死
for line in read_f:#一行行的读
write_f.write(line)
#write_f.flush()这个意思是写一行赶紧给我刷到硬盘中去,效率低
 对sys_argv的解释
import sys
print(sys.argv)
截图中输入的src_file,dst_file是给脚本的赋值,都传到argv中

import sys
print(sys.argv)
l=['F:\\python20期\\02练习.py', 'src_file', 'dst_file']#定义的l就相当于argv
# sfile=l[1]
# dfile=l[2]提取l[1]和l[2]可以用另一种方式取出_,sfile,dfile用这两种方式取
_,sfile,dfile=l#l相当于sys.argv
#所以直接可以写成
import sys#倒入模块
print(sys.argv)
_,sfile,dfile=sys.argv
# import os
# with open('access.log','r',encoding='utf-8') as read_f\
# ,open('.access.log.swap','w',encoding='utf-8')as write_f:#swap坐下中转
# data=read_f.read()
# data=data.replace('zhongguo','hello')#只是在内存中修改的
# write_f.write()
#
# os.remove('access.log')#
# os.rename('.access.log.swap','b.txt')#把b.txt.swap重名名为b.txt
上面的这种方式如果文件过大,内存容易爆
import so
# with open('access.log','r',encoding='utf-8') as read_f\
# ,open('.access.log.swap','w',encoding='utf-8')as write_f:
      for line in read_f:#一行行读出
        if 'alex' in line#如果alex在line就修改
          line=line.replace('alex','SB')#这个还没有替换line.replace('alex','SB'),要重新赋值
        write_f.write(line)
  os.remove('
access.log')
  os.rename('.access.log.swap','access.log')
 
文件内光标移动
 #只有一种情况光标以字符为单位:文件以rt方式打开,read()c.txt为hello你
# with open('c.txt','rt',encoding='utf-8') as f:
# # print(f.read())
# # print(f.tell())
# # f.seek(,)
# # print(f.read())
# f.seek(,)#光标移动的字节,第二个是指第几个字节,第二个0代报参照物(只有0在rt模式下使用),代表相对的位置在哪,还可以是1,,这里的0代表回到首位
证明
# # f.seek(,)
# f.seek(,)
# print(f.read())

截断文件

 with open('sa.txt','a',encoding='utf-8') as f:
f.truncate()#指定大小
如果是windows系统的时候
f=open(r'c:\\a.txt','r',encoding='utf-8')第一个r指的是取消掉右斜杠的转意,如果要是当前文件就直接写文件名就好
2 通过句柄文件进行操作
data=f.read()
关闭文件
f.close

f=open('a.txt','r')的过程分析

#、由应用程序向操作系统发起系统调用open(...)

#、操作系统打开该文件,并返回一个文件句柄给应用程序

#、应用程序将文件句柄赋值给变量f

Python Third Day-文件处理的更多相关文章

  1. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

  2. Python开发【第三篇】:Python基本之文件操作

    Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open ...

  3. Python绘制PDF文件~超简单的小程序

    Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...

  4. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  5. python批量进行文件修改操作

    python批量修改文件扩展名 在网上下载了一些文件,因为某种原因,扩展名多了一个后缀'.xxx',手动修改的话因为文件太多,改起来费时费力,于是决定写个小脚本进行修改. 1.要点: import r ...

  6. 关于Python中的文件操作(转)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  7. Python基础、文件处理

    一.概述 Python中操作文件是通过file对象来处理的,步骤: 指定文件的路径.操作的模式 对文件进行操作,读或写操作 关闭文件对象 f = open( '文件路径','访问模式') # 打开文件 ...

  8. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

  9. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  10. Python写UTF8文件,UE、记事本打开依然乱码的问题

    Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...

随机推荐

  1. 多线程:『GCD』详尽总结

    本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法.这大概是史上最详细.清晰的关于 GCD 的详细讲解+总结的文章了.通过本文,您将了解到:1. GCD 简介2. GCD 任务和队列3. ...

  2. 洛谷P4095||bzoj3163 [HEOI2013]Eden 的新背包问题

    https://www.luogu.org/problemnew/show/P4095 不太会.. 网上有神奇的做法: 第一种其实是暴力(复杂度3e8...)然而可以A.考虑多重背包,发现没有办法快速 ...

  3. 牛客网Java刷题知识点之Java为什么不能支持多继承,但可以用接口来间接实现多继承

    不多说,直接上干货! java只支持单继承,这是由于安全性的考虑,如果子类继承的多个父类里面有相同的方法或者属性,子类将不知道具体要继承哪个,而接口可以多实现,是因为接口只定义方法,而没有具体的逻辑实 ...

  4. 我的NopCommerce之旅(8): 路由分析

    一.导图和基础介绍 本文主要介绍NopCommerce的路由机制,网上有一篇不错的文章,有兴趣的可以看看NopCommerce源码架构详解--对seo友好Url的路由机制实现源码分析 SEO,Sear ...

  5. npm scripts 常用规范总结

    npm scripts 常用规范总结 随着 npm scripts 使用越来越多,需要规范一下, npm run 的使用词. 定义 我定义如下形式: npm run <action>:&l ...

  6. vue之导入Bootstrap和Jquery

    Vue引入bootstrap主要有两种方法 方法一:在main.js中引入,此方法导入的bootstrap中对于html,body的一些预设置的css样式可能无效. 一.引入jQuery 在当前项目的 ...

  7. leetcode542 01 Matrix

    思路: 多个起点的bfs. 实现: class Solution { public: vector<vector<int>> updateMatrix(vector<ve ...

  8. jsp实现账户登录、注册!

    jsp连接mysql数据库进行账户登录验证和账户注册 ~jsp: Login.jsp .LoginCl.jsp.Welcome.jsp.Register.jsp.login.css login.css ...

  9. LR中webservice服务测试的脚本

    Action(){ /* 测试QQ是否在线的功能接口 输入参数:QQ号码 String,默认QQ号码:8698053. 返回数据:String,Y = 在线:N = 离线:E = QQ号码错误:A = ...

  10. 总结SQL Server窗口函数的简单使用

    总结SQL Server窗口函数的简单使用 前言:我一直十分喜欢使用SQL Server2005/2008的窗口函数,排名函数ROW_NUMBER()尤甚.今天晚上我在查看SQL Server开发的相 ...