ascii码转换成字符:ord(str)

字符串转换成ascii:chr(int)

三种字符串

1、普通字符串  --以字符作为输出单位

  print(u'abc')  显示给用户看的字符串

2、二进制字符串  --以字节作为输出单位

  print(b'\xe4\xbd\x95\xe8\x8b\x8f\xe5\x81\xa5')   用于传输用

3、原义字符串  --以字符作为输出单位,所有普通字符串以原义输出

print('run\tagain\nstop')

print(r'run\tagain\nstop')     取消转义    不会自动换行,保持原字符串

文件操作的三步骤

1、打开文件  硬盘空间被操作系统持有,文件对象被应用程序持有

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

2、对文件进行操作  

  date = f.read()

3、关闭文件  释放文件(释放操作系统对硬盘空间的持有)

  f.close()

文件基本的读

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

date = f.read()    -->一次性把所有文件都读出来

date = f.read(10)   -->一次读十个字符 

date = f.readline()    -->一次读一行

date = f.readlines()  -->分行一次性读出来,换行标识作为换行依据,存在同一个列表里。

f.close()

文件基本的写

w = open('a.txt','w',encoding='utf-8')

w.write('abc')    -->直接写入文件

w.flush()         -->将文件保存到文件夹

w.write('opq\nrst')   -->遇到换行标识就会自动换行

w.writelines(list)      -->一次添加多行,多行内容必须添加在同一个列表里,并且要标上标识符\n

w.close()      -->1、将文件保存到内存中   2、释放硬盘空间

with…open()语法

为了整合优化文件资源的打开与释放

  --再with的缩进内操作文件,一旦退出缩进,就会释放硬盘空间

part1:

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

  date = f.read()  #进行一些对文件的操作指令

#一旦退出缩进,硬盘空间就被释放

part2

with open('a.txt','r',encoding='utf-8') as f,open('b.txt','r',encoding='utf-8') as v:  #同时打开两个文件

  #对两个文件的操作

part3:

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

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

    date = f.read()

    date = v.read()

  date = f.read()  #可以进行操作

  date = v.read()  #不可以操作

文件的操作模式

主模式  r  |  w  |  a  |  x

从模式  t  |   b  |  +

r:只能读取已经存在的文件,不存在就报错

w:如果文件存在,就先清空再写,如果文件不存在,就新建再写

a:如果文件存在,就在文件内容的末尾继续添加写,如果文件不存在,就新建再写

x(了了解):只能新建文件再写,如果文件存在就报错

t:默认的从模式,以字符进行操作

b:以字节进行操作

+:可读可写

rt:文件必须存在,不存在就报错,文件操作采用字符方式,简写r

wt:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字符方式,简写w

at:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字符方式,简写a

rb:文件必须存在,不存在就报错,文件操作采用字节方式

wb:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字节方式

ab:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字节方式

r+t:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字符方式

w+t:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字符方式

a+t:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字符方式

r+b:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字节方式

w+b:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字节方式

a+b:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字节方式

文件操作编码问题

1、在t模式下:文件保存采用什么编码,打开就用什么编码打开,不然会出现乱码,如果不写编码,就会用系统默认编码

  所以t模式下一定要指定编码--什么编码写,什么编码打开

2、在b模式下:硬盘文件保存的是二进制的字符串形式,写入也是提前编写好的二进制文件,电脑可以识别编码

  所以b模式下不需要去指定编码

文件的复制

with open('a.txt','r',encoding='utf-8') as rf:  #通过采用字符操作复制

  with open('b.txt','w',encoding='utf-8') as wf:

    for line in rf

      wf.write(line)  #可以把a文件一行一行的读出来并复制到b文件里

with open('a.txt','rb') as rf:  #通过采用字节操作复制

  with open('b.txt','wb') as wf:

    for line in rf

      wf.write(line)

游标操作

只有在r模式下才可以进行游标操作(游标操作的是字节)

with open('a.txt','rb') as rb:

  date = rb.read(10)

  f.seek(2,0)   #seek(offset,whence)    offset   前面的是游标移动的字节数,正数表示向后移动,负号表示向前移动。  

        逗号后面的数字在b模式下可以为0、1、2

        whence    0:游标置到开头  1:游标置到当前位指  2:游标置到末尾

# 你是日本人
with open('target.txt', 'rb') as f:
# 先读6个字节
data = f.read(6)
print(data.decode('utf-8')) # 你是
# 将游标从头开始往后偏移3个字节
f.seek(3, 0)
data = f.read(6)
print(data.decode('utf-8')) # 是日
# 从当前游标位置往前偏移3个字节
f.seek(-3, 1)
data = f.read(3)
print(data.decode('utf-8')) # 日

f.seek(-3, 2)
data = f.read(3)
print(data.decode('utf-8')) # 人

python day08的更多相关文章

  1. python day08 文件操作

    2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...

  2. python day08作业答案

    1. a f=open('11.txt','r',encoding='utf-8') a=f.read() print(a) f.flush() f.close() b. f=open('11.txt ...

  3. python day08作业

  4. 铁乐学Python_day08_文件操作

    一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...

  5. Python面向对象进阶和socket网络编程-day08

    写在前面 上课第八天,打卡: 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __i ...

  6. python开发学习-day08(socket高级、socketserver、进程、线程)

    s12-20160305-day08 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  7. day08 python文件操作

    day08 python   一.文件操作     1.文件操作的函数         open(文件名, mode=模式, encoding=字符集)       2.模式: r, w, a, r+ ...

  8. 初学python之路-day08前期总结

    # 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...

  9. 初学python之路-day08

    #学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...

随机推荐

  1. ASP.NET MVC默认配置如有跳转到指定的Area区域中的对应程序中

    今天在搭建一个基于MVC的项目,因为项目涉及到了手机和pc端,为了方便和减少二者之间的耦合我在区域(Areas)中建立了两个 程序空间,那么问题来了我想让程序默认跳转到我所指定的areas中的对应项目 ...

  2. numpy操作

    python中使用了numpy的一些操作,特此记录下来: 生成矩阵,替换值 import numpy as np # 生成一行10列的矩阵 dataset = np.zeros((1, 10)) # ...

  3. Windows7下安装pyspark

    安装需要如下东西: java jdk-8u181-windows-x64.exe spark spark-2.1.3-bin-hadoop2.7 hadoop(版本要与spark的一致,这里都是had ...

  4. Python基础(文件操作)

    文件读取: #文件读取方式一 f=open("a.txt","r+",encoding="utf8") data=f.read() prin ...

  5. @vue-cli3创建项目报错:ERROR command failed: npm install --loglevel error --registry=https://registry.npm.taobao.org --di

    使用@vue-cli3时 在你感觉所以配置都搞好开始创建项目时,不停的报错,就是创建不成功 清npm缓存也不行 改淘宝镜像也不行 就快奔溃了,最后最终(其实我在凑150字,为了能发到首页给更多采坑的兄 ...

  6. Celery工具

    什么是Celery Celery的功能 Celery是基于python实现的第三方组件,可以实现定时任务.周期任务等. Celery的组成 Celery的角色 - 任务,创建或发布任务. - 使用re ...

  7. C# 默认访问权限

    声明类.方法.字段.属性时不加访问权限修饰符时的访问权限是什么呢?1. 声明命名空间.类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集. 2. 声明类成员(域.属性 ...

  8. js获取url 中的值,并跳转相应页面

    实现方法:一:获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET1.函数: <Script lang ...

  9. 将配置文件appsetting中的值转换为动态对象调用

    该文可参考我的另一篇关联文章:   https://www.cnblogs.com/lxhbky/p/6957825.html 配置如下: <!--邀请用户送优惠券规则{邀请人规则:[{邀请人: ...

  10. 关于视频断点续播和H5的本地存储

    前段时间,需要在下实现一个视频的断点续播功能,呃,我不会呀,这就很尴尬了.然后呢,在下就想起了一个叫做localStorage的东西.这是个什么东西呢?在网上查阅了一些资料后,在下发现这是webSto ...