day8

三种字符串

#普通字符串:u'以字符作为输出单位'
print(U'abc') #用于显示

#二进制字符串:b'二进制字符串以字符作为输出单位'
pint(b'abc') #用于传输

#原义字符串:r'以字符作为输出单位,所有在普通字符串能被'

文件操作的三步骤

1.打开文件:硬盘空间被操作系统持有,文件对象被应用程序持有
2.操作文件
.释放文件:释放操作系统对硬盘空间的持有

进制

ascii与字符的相互转换
print(10)
print(0b 1010)   二进制
print(0o 12)     八进制
print(0xa)       十六进制

将字符串转化成数字(ord)
print(ord('A'))
print(cha(9325))
print(ord'@')

-128~127 一个字节占8位,后面7位作数据位
源码 补码 所有的代码都是以补码的形式储存的

基础的读

为什么要释放资源:释放操纵系统对硬盘空间的持有权

f = opne('绝对路径',模式,编码方式)
write() 一次写一条,行必须用标识
flush() 向操作系统发送一条将内容中写入的数据刷新到硬盘
writeline() 一次写多行,行必须用 标识

with...open

#优化整合了文件资源的打开与释放
#在with的缩进内可以操作文件对象,一旦取消缩进,资源就被释放
#as 起别名
with open('target.txt', 'r', encoding='utf-8') as rf1:
    with open('target1.txt', 'r', encoding='utf-8') as rf2

文件的操作模式

主模式:主模式只能选取一个,规定这主要的操作方式
r 读, 必须有源文件
w 写, 清空写,可有可无
a 追加写, 可有可无
x 创建写, 必须没有

从模式
t:默认,按字符操作
b:按二进制操作
+:可读可写

主模式和从模式和搭配

文件的操作编码问题

t模式:原文件采用何种方式编码,就需要选用何种方式编码,如果不选取,默认和操作系统保持一致(windows和mac的区别)
b模式:硬盘的数据就是二进制,且能根据内容识别出编码,写入时的数据也是通过某种编码提前处理好的,在操作时,不用规定编码

文件的复制

# 文本文件的复制:可以t也可以b
with open('target.txt', 'r', encoding='utf-8') as rf:
    with open('target2.txt', 'w', encoding='utf-8') as wf:
        for line in rf:
            wf.write(line)

with open('target.txt', 'rb') as rf:
    with open('target3.txt', 'wb') as wf:
        for line in rf:
            wf.write(line)


# 非文本文件只能采用b模式操作,不需要指定编码 - 因为根本不涉及编码解码过程
with open('001.mp4', 'rb') as rf:
    with open('002.mp4', 'wb') as wf:
        for line in rf:
            wf.write(line)

游标操作

#1.游标操作的是字节,所有只能在b模式下进行操作
#2.游标操作可以改变操作位置,r模式下可以改变位置进行操作,所有主模式选择r模式
#3.seek(offset, whence):
#       -- offset为整数就是往后偏移多少个字节,负数就是往前偏移多少个字节
#       -- whence:0代表将游标置为开头,1代表从当前位置,2代表将游标置为末尾

原文地址:https://www.cnblogs.com/zhuqihui/p/10753471.html