数据存放在硬盘,
双击应用程序的快捷键--》把应用程序的硬盘所在的路径给操作系统--》操作系统把这个指令转换成机器语言给CPU-->CPU告诉内存去硬盘取应用程序的代码--》应用程序代码读入内存--》应用程序启动
打开文本编辑器就是上述的一个过程
py文件已经读入内存,python解释器执行.py的代码的过程:
解释python语法,然后才有了变量的概念
a = 1
‘a‘ , ‘=‘,‘1‘这三个字符在硬盘里是0和1的形式。
文本编译器的翻译是把 ‘a = 1‘的二进制翻译成 a = 1,这个过程就叫字符编码。
涉及到字符编码的两个场景
统一万国字符的 Unicode
文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。文件的操作是基于文件,即文件的操作核心就是:读和写。
也就是只要我们想要操作文件就是对操作系统发起请求,然后由操作系统将用户或应用程序对文件的读写操作转换成集体的硬盘指令(比如控制盘片转动,控制机械手臂移动,以此来读取数据)。
操作系统,windows操作系统有应用程序,linux操作系统也有应用程序(Linux一切皆文件)。
内存无法永久保存数据,我们想要永久保存数据都需要把文件保存到硬盘中,我们不能直接操纵硬件,而操作文件就可以实现对硬件的操作。
fr = open(r'E:\孔\test\1', mode='r', encoding='utf8')
print(fr)
print(fr.read())
# print(f.write('aaa')) 报错
fr.close()
fw = open(r'E:\孔\test\2', mode='w', encoding='utf8') # 会先清空文件在写入,append追加
print(fw)
fw.write('你好世界!')
fw.flush() # 快速刷新
<_io.TextIOWrapper name='E:\\孔\\test\\1' mode='r' encoding='utf8'>
Hello world!!
<_io.TextIOWrapper name='E:\\孔\\test\\2' mode='w' encoding='utf8'>
绝对路径从根目录开始
相对路径从当前文件目录开始
with open(r'E:\孔\test\1', 'rb') as fr: # with open 打开文件后,会自己关闭文件
print(fr)
print(fr.read())
with open(r'E:\孔\test\1', 'rt') as fr:
print(fr)
print(fr.read())
<_io.BufferedReader name='E:\\孔\\test\\1'>
b'Hello world!!'
<_io.TextIOWrapper name='E:\\孔\\test\\1' mode='rt' encoding='cp936'>
Hello world!!
# 执行复制功能
with open(r'E:\孔\test\1', 'r', encoding='utf8') as fr, open(r'E:\孔\test\2', 'w', encoding='utf8') as fw:
data = fr.read()
fw.write(data)
原文:https://www.cnblogs.com/WilliamKong94/p/10852840.html