您的位置:首页 > 其它

Chapter3:字符串编码和文件操作

2017-05-19 11:06 183 查看
#!/usr/bin/python
# -*- coding utf8 -*-

'''
字符编码补充

内存: Unicode格式的二进制

decode  encode
↑       |
↑       |
|       ↓
|       ↓
硬盘:utf-8格式的二进制

'''
#
# s = u'吴'
# s2 = s.encode('utf8')
# print(s2)
# s3 = s.encode('gbk')
# print(s3)

#Python3中字符串有Unicodeencode后的bytes格式

'''
总结
执行过程中字符串的概念
在Python3中  所以的字符串都会被识别成Unicode编码的结果
即:
在Python3中共有两种形式的字符串
str即Unicode
bytes即str.encode()的结果

在Python2中也有两种形式的字符串:
str
Unicode
但是默认是bytes形式 默认只有decode方法
'''
#------------------------------------------------------------------------

#基本读取操作

# f1 = open('song',encoding='utf-8',mode='r')
# data = f1.read()
# print(data)
# f1.close()

#----------------------------------------------------
#光标到尾部无法读取内容

# f=open('song',encoding='utf8',mode='r')
# print(f)  #输出文件读取信息<_io.TextIOWrapper name='song' mode='r' encoding='utf8'>
# data=f.read()
# data2 = f.read()
# print(data2)  #光标已经移动至末尾 无法读出内容

#----------------------------------------------------
#seek方法移动光标

# f=open('song',encoding='utf8',mode='r')
# f.read()
# f.seek(0)
# data2=f.read()
# print(data2)
# f.close()

#----------------------------------------------------
#readline 读取一行 默认带换行符 可以取消掉 用end=

# f=open('song',encoding='utf8',mode='r')
# #print(f.read())		#读取文件
# print(f.readline())	#读取一行
# print(f.readline())
# print('*****')
# print(f.readline(),end='')	#不读取末尾的换行符
# print(f.readline(),end='')
# print(f.readlines(),end='') #以列表形式读取
#输出结果:

# 正趣果上果 - 陈粒
#
# 词:郭婞
#
# *****
# 曲:陈粒
# 你佩桃木降妖剑

#----------------------------------------------------
#写的方式打开文件 文件存在则情况 不存在则创建

# f=open('song',encoding='utf8',mode='w') #打开文件
# print(f.writable()) #是否可写
# print(f)                #读取操作的信息
# #print(f.write('1122\nwowowo'))  #写入
# print(f.writelines(['1\n','2']))   #以列表写入 不支持int型

#----------------------------------------------------
#循环取出每行 判断内容 重写到swap文件 然后删除 重命名新文件
# import os
# read_f=open('song2',encoding='utf8',mode='r')
# write_f=open('song2.swap',encoding='utf8',mode='w')
# for line in read_f.readlines():
#     if line.startswith('111'):
#         line = 'aaaa\n'
#     write_f.write(line)
# read_f.close()
# write_f.close()
# os.remove('song2')
# os.rename('song2.swap','song2')

#f = open('song','r+')#读写
#f = open('song','w+')#写读
#f = open('song','a+')#追加 读取

#不需要执行f.close()的打开方式
# with open('song','r',encoding='utf-8') as f:
#     print(f)
#     print(f.read())

#上下文管理  自动负责关闭 可以同时打开多个文件

# with open('song','r',encoding='utf-8') as f,open('b.txt') as b_f:
#     print(f)
#     print(f.read())

#补充
# for循环不被break时执行else内容

for i in range(3):
print(i)
#break
else:
print('-------------------?')

#song文件内容
'''
正趣果上果
陈粒
'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: