'''
【课程8.1】 文件对象声明及基本操作
另一种数据格式:文件/文档
'''
'\n【课程8.1】 文件对象声明及基本操作\n\n另一种数据格式:文件/文档\n\n'
path1 = 'C:/Users/Hjx/Desktop/text.txt'
path2 = 'C:\\Users\\Hjx\\Desktop\\text.txt'
path3 = r'C:\Users\HASEE\Desktop\test.txt'
print(path1)
print(path2)
print(path3)
C:/Users/Hjx/Desktop/text.txt
C:\Users\Hjx\Desktop\text.txt
C:\Users\HASEE\Desktop\test.txt
f=open(path3,'r',encoding='utf-8')
print(type(f))
print(f)
print(f.read())
print('读取完毕')
print(f.read())
print('读取为空')
f.seek(0)
print(f.read())
print('第二次读取')
f.close()
<_io.TextIOWrapper name='C:\\Users\\HASEE\\Desktop\\test.txt' mode='r' encoding='utf-8'>
265256201
读取完毕
读取为空
265256201
第二次读取
import os
print(os.name)
print(os.getcwd())
print(os.listdir())
print(os.path.split(r'C:\Users\HASEE\Desktop\linux通信.md'))
print(os.path.exists(r'C:\Users\HASEE\Desktop\l.md'))
print(os.path.exists(r'C:\Users\HASEE\Desktop'))
nt
C:\Users\HASEE\数据分析师\自己写课程笔记\1python基础语法
['.ipynb_checkpoints', 'CH01基本知识总结.ipynb', 'CH02变量及数据类型.ipynb', 'CH03序列及操作.ipynb', 'CH04字典映射.ipynb', 'CH05条件及循环语句.ipynb', 'CH06函数.ipynb', 'CH07模块与包 .ipynb', 'CH08数据读写.ipynb']
('C:\\Users\\HASEE\\Desktop', 'linux通信.md')
False
True
os.chdir(r'C:\Users\HASEE\Desktop')
f2=open('linux通信.md','r',encoding='utf-8')
print(f2.read())
# Linux通信
## Signal信号机制
一、概括signal三大功能
1软中断处理产生sigint eg 组合键ctrl+c
2硬件异常处理产生sigalarm
3进程间通信 eg kill()
f=open(r'C:\Users\HASEE\Desktop\linux通信.md','r',encoding='utf-8')
print(f.read())
# Linux通信
## Signal信号机制
一、概括signal三大功能
1软中断处理产生sigint eg 组合键ctrl+c
2硬件异常处理产生sigalarm
3进程间通信 eg kill()
f.seek(0)
print(f.read(100))
# Linux通信
## Signal信号机制
一、概括signal三大功能
1软中断处理产生sigint eg 组合键ctrl+c
2硬件异常处理产生sigalarm
3进程间通信 eg
f.seek(0)
print(f.readline())
print(f.readline())
print(f.readline())
print(f.readline())
print(type(f.readline()))
print(f.readline(20))
# Linux通信
## Signal信号机制
f.seek(0)
for line in f.readlines():
print(type(line), line)
# Linux通信
## Signal信号机制
一、概括signal三大功能
1软中断处理产生sigint eg 组合键ctrl+c
2硬件异常处理产生sigalarm
3进程间通信 eg kill()
path=r'C:\Users\HASEE\Desktop\address.txt'
f=open(path,'r')
m=[]
n=0
for line in f.readlines():
n+=1
lst1=line.split(":")
name=lst1[0]
lst2=lst1[1].split(',')
lng=lst2[0]
lat=lst2[1]
add=lst2[2]
eachdata=[['name',name],['lng',lng],['lat',lat],['address',add]]
m.append(dict(eachdata))
print(m)
print('total num%i'%n)
[{'name': '华中科技大学', 'lng': '163', 'lat': '225', 'address': '珞喻路\n'}, {'name': '武汉大学', 'lng': '454', 'lat': '5565', 'address': '洪山广场'}]
total num2
path=r'C:\Users\HASEE\Desktop\address.txt'
f=open(path,'w',encoding='utf8')
f.write('小闫最帅\n')
f.close()
f=open(path,'a',encoding='utf8')
f.write('小闫最帅\n')
f.close()
path=r'C:\Users\HASEE\Desktop\address.txt'
f=open(path,'w',encoding='utf8')
lst=['x','x','s']
f.writelines(lst)
f.close()
path=r'C:\Users\HASEE\Desktop\address.txt'
f=open(path,'w',encoding='utf8')
lst=['x','x','s']
for i in range(len(lst)):
lst[i]=lst[i]+'\n'
f.writelines(lst)
f.close()
"""
小作业
两个列表[1~10],[a~j],写入一个txt,变成以下格式
1,a
2,b
3,c
...
"""
'\n小作业\n两个列表[1~10],[a~j],写入一个txt,变成以下格式\n1,a\n2,b\n3,c\n...\n'
n=list(range(1,11))
v = ['a','b','c','d','e','f','g','h','i','j']
path=r'C:\Users\HASEE\Desktop\address.txt'
f=open(path,'w',encoding='utf8')
for i in range(len(n)):
f.writelines([str(n[i])+','+v[i]+'\n'])
f.close()
print('finished!')
finished!
"""
总结read和write
read()
1f=open(path,'r',encoding='gbk' or 'utf8')
2f.read()返回一个字符串 f.read(n)则只读前n个字符 f.readline()则读取一行
3f.seek(0)可使光标回到开头,否则再次read默认上次read结束的位置
4f.close()养成好习惯
f.readlines()返回listofstr 每个list元素是一行str
write()
1f=open(path,'w',encoding='gbk' or 'utf8') 'w'覆盖写入 'a'接续写入
2f.write(str)向缓冲区写入一个字符串
3f.flush() or f.close()将缓冲区写入文件
f.writelines([str(n[i])+','+v[i]+'\n'])
注1 writelines(lst)必须放lst
2 writelines如果不close或flush会无限地向buffer里存
3+ 只能连接两个字符串 必须把n[i] int str()化
"""
"\n总结read和write\nread()\n1f=open(path,'r',encoding='gbk' or 'utf8')\n2f.read()返回一个字符串 f.read(n)则只读前n个字符 f.readline()则读取一行\n3f.seek(0)可使光标回到开头,否则再次read默认上次read结束的位置\n4f.close()养成好习惯\n\nf.readlines()返回listofstr 每个list元素是一行str\n\n\nwrite()\n1f=open(path,'w',encoding='gbk' or 'utf8') 'w'覆盖写入 'a'接续写入\n2f.write(str)向缓冲区写入一个字符串 \n3f.flush() or f.close()将缓冲区写入文件\n\nf.writelines([str(n[i])+','+v[i]+'\n'])\n 注1 writelines(lst)必须放lst\n 2 writelines如果不close或flush会无限地向buffer里存 \n 3+ 只能连接两个字符串 必须把n[i] int str()化\n"
'''
【课程8.4】 pickle模块的运用
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
python的pickle模块实现了基本的数据序列和反序列化
通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
pickle.dump() / pickle.load()
'''
'\n【课程8.4】 pickle模块的运用\n\npickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。\n\npython的pickle模块实现了基本的数据序列和反序列化\n\n通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储\n\n通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。\n\npickle.dump() / pickle.load()\n\n'
import pickle
data = {'a':[1,2,3,4], 'b':('string','abc'), 'c':'hello'}
print(data)
pic=open(r'C:\Users\HASEE\Desktop\address.txt','wb')
pickle.dump(data,pic)
pic.close()
{'a': [1, 2, 3, 4], 'b': ('string', 'abc'), 'c': 'hello'}
f = open( r'C:\Users\HASEE\Desktop\address.txt','rb')
st = pickle.load(f)
print(st)
{'a': [1, 2, 3, 4], 'b': ('string', 'abc'), 'c': 'hello'}