一、字符编码

  1. 内存固定使用unicode编码
  2. 数据最先产生于内存中,是unicode格式,要想传输需要转成bytes格式

    # unicode -------> enconde( u t f - 8 ) -------> bytes

  拿到bytes,就可以往文件内存放或者基于网络传输

    # bytes --------> enconde( u t f - 8 ) -------> unicode

  1. python 3 中字符串被识别为 unicode

    python 3 中的字符串encode得到bytes

    python 2 中的字符串就是 bytes

    python 2 在字符串前加 ‘u’ ,就是unicode

二、文件处理

流程:打开文件===>得到文件句柄并赋值给变量 ====> 通过句柄操作文件==>关闭文件

读文件:

 f = open( ‘aaaa.py ’ , ‘ r ’ ,encoding = ‘utf-8’ )

 print( f.readline() ,end= ‘’)#读取一行

 print( f.readlines() , end=’’ )#读取全部,不换行

 print( f.readable() )#可读文件

 print( f.writable() )#不可写文件

 f.close()#结束之后必须关闭,否则占用内存

写文件:

f = open( ‘new_2’, ‘w’,encoding=’utf-8’ )

print( f.readable() )#不可读

print( f.writable() )#可写

f.write( ‘888888\n’ )#追加单行

f.write( ‘999999\n’ )#追加

f.writelines( [ ‘787878\n’ , ‘878787\n’] )#追加多行

f.close()#关闭文件

追加:

f=open('new_2','a',encoding='utf-8')

print(f.readable())        #不可读

print(f.writable())         #可写

f.write('888888\n')       #追加单行

f.write('999999\n')

f.writelines(['787878\n','878787\n'])       #追加多行

f.close()

#rb

f=open('aaaa.py','rb')    #以字节打开

print(f.read().decode('utf-8'))

拷贝图片:

f=open('1.jpg','rb')      #以rb的方式打开1.JPG

data=f.read()           #data获取读取到f的内容

print(data)

f2=open('3.jpg','wb')      #以写的方式打开

f2.write(data)         #把data的内容写到f2

f2.close()

f.close()

#ab,以二进制的形式追加

f=open('new_3.txt','ab')

f.write('aaaaa\n'.encode('utf-8'))

*上下文管理:

with open('aaaa.py','r',encoding='utf-8') as read_f,\

        open('aaaa_new.py','w',encoding='utf-8') as write_f:

    data=read_f.read()

    write_f.write(data)

循环取文件每一行内容:

with open('a.txt','r',encoding='utf-8') as f:

    while True:

        line=f.readline()

        if not line:break

        print(line,end='')

    lines=f.readlines() #只适用于小文件

    print(lines)

    data=f.read()

    print(type(data))

    for line in f: #推荐使用

        print(line,end='')

文件的修改:

方式一:只适用于小文件

 import os

 with open('a.txt','r',encoding='utf-8') as read_f,\

         open('a.txt.swap','w',encoding='utf-8') as write_f:

     data=read_f.read()

     write_f.write(data.replace('alex_SB','alex_BSB'))

 os.remove('a.txt')

 os.rename('a.txt.swap','a.txt')

 

#方式二:

 import os

with open('a.txt','r',encoding='utf-8') as read_f,\

        open('a.txt.swap','w',encoding='utf-8') as write_f:

    for line in read_f:

        write_f.write(line.replace('alex_BSB','BB_alex_SB'))

os.remove('a.txt')

os.rename('a.txt.swap','a.txt')

文件函数操作介绍

函数

说明

file.read ( [ size ] )

读取文件全部内容

file.readline ( [ size ] )

一行一行的读取

file.readlines ( [ size ] )

读取到的每一行内容作为list中的元素

file.write ( str )

将字符串写入文件

file.writelines ( sequence or stringe)

写多行到文件,参数可以是一个可迭代的object/list/tuple...

file.close()

关闭已经打开的文件

file.fileno ( self )

文件描述符

file.flush ( self )

刷新缓冲区的内容到硬盘

file.isatty ( self )

判断文件是否是 tty 设备,如果是 tty设备则返回True

file.readable ( self )

判断是否可读 ,如果可读返回True,否则返回False

file.readline ( self , limit=-1 )

每次仅读取一行数据

file.readlines ( self , hint=-1 )

把每一行内容当做列表(list)的一个元素

file.tell(self)

获取指针位置

file.seek(self,offset, whence=io.SEEK_SET)

指定文件中指针的位置

file.seekable(self)

指针是否可操作

file.writable(self)

是否可写

file.writlines(self,lines)

写入文件的字符串序列,序列可以是任何迭代的对象字符串

file.read(self,n=None)

读取指定字节数据,后面不加参数默认读取全部

file.write(self,s)

往文件中写内容


python_文件 处理的更多相关文章

  1. python_文件

    1. 打开文件 (1) open(name[, mode[, buffering]]) 功能:打开文件或者新建一个文件 参数说明: mode: "r" : 读模式(默认)   &q ...

  2. Python_文件与文件夹操作

    ''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...

  3. Python_文件处理

    1.Python  文件处理 打开文件---->读取内容---->获得内容 读取文件方式:  r  只读文件  w 只写模式 a 追加模式 r+b 读写模式   w+b 写读模式  a+b ...

  4. python_文件操作

    说明:如有转载,请标明出处!! 一.文件操作 1.文件常用操作方法 open() f=open('文件名','r',encoding='utf-8') #三个参数,第一个文件详细路径,需要写明文件格式 ...

  5. 零基础学习python_文件(28-30课)

    本人小白一枚,随着现在对测试要求越来越高,动不动就要去会一门编程语言,没办法只能学习学习Python,今天看到几个月前还是菜鸟的人突然就已经能使用Python写简单系统了,没办法,虽然之前也简单学习过 ...

  6. python_文件操作代码实例

    """提示:代码中的内容均被注释,请参考,切勿照搬""" 1 #文件的打开和关闭 ''' 文件对象 = open('文件名','使用方式') ...

  7. python_文件的打开和关闭

    文件对象 = open('文件名','使用方式')rt:读取一个txt文件wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容at:打开一个txt文件,并从文件指针位置追加写内 ...

  8. python_文件io

    # -*- coding:UTF-8 -*-#从键盘读入raw_input([prompt]) #函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符)#input([prompt]) 函数和 ...

  9. Python_文件相关操作

    1.open(filePath,type)方法:打开文件 filePath:文件路径 type:操作文件的方式(r:读取,w:覆盖写入,a:追加写入) 2.strip()方法:去除读取到的每行内容后的 ...

随机推荐

  1. 547D Mike and Fish

    传送门 分析 见正睿10.3笔记 代码 #include<iostream> #include<cstdio> #include<cstring> #include ...

  2. jquery 仿文本编辑器(智能提示输入文字)

    1.前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InputAu ...

  3. Swingr的JTextField、JPasswordField设置圆角输入框

    方法1:定义Border,然后给JTextField设置即可 摘自并整理:https://blog.csdn.net/u012093968/article/details/39316679 最好添加这 ...

  4. 为PyCharm自动配置作者信息

    在团队开发中,需要在代码中编写一些项目信息或个人信息,如开发者.开发时间.项目名称等信息,以利于后期对项目修改和维护.如果每次都需要手动编写,费时费力.下面介绍如何自动在代码文件中自动生成这些信息. ...

  5. ASP.NET Core 部署到Cont OS 服务器

    一.前言 当 asp.net core 发布以后,实现了跨平台.基于好奇,我就测试了一下 core 项目部署到 linux 服务器.感觉一路还是有所收获,接下来记录一下操作流程. 工具:window ...

  6. Gazebo学习随记4 Actor: 该配合你的演出我视而不见

    在Gazebo仿真中,除了模型model外,还有一种和model并列的类型——actor. 相比于model受物理引擎的作用,actor不受重力等等的影响,可以按照设定的运动轨迹进行运动. <s ...

  7. 继承&多态

    继承: 概念: 基类,超累,父类 访问权限: Public :无限制,自由访问 Private:不可继承 protected :包内,包外,可访问,继承 default:没有指明任何权限下,默认在同一 ...

  8. Android源码、内核编译

    Android源码和内核的编译就是一场马拉松,每一个节点都耗时漫长,下载源码.编译源码.下载内核.编译内核,下载中途会断掉,编译中间会失败,求解再重来,又是一轮马拉松,于是每一步都要做好备份和记录,可 ...

  9. iOS模拟器录屏转gif神器

    我发现苹果的Quick Time Player用来录屏就挺好用的.打开后选择 文件 - 新建屏幕录制 - 点击录制按钮, 划出要录制的模拟器窗体 - 点击录制就可以了. 录制成mov格式还要再转成gi ...

  10. day06.2-软链接与硬链接

    1. 建立软链接:ln   -s   源文件   链接文件 特点:a). 相当于Windons系统中的快捷方式:        b). 删除链接文件不影响源文件内容,而删除源文件后链接文件随即失效: ...