湖北省市政工程建设官方网站,深圳宝安沙井网站建设,展示型网站建设方案书,北航网站建设一、文件永久存储
如何将数据永久的存放在硬盘上#xff0c;具体如下。 1.打开文件 定义#xff1a;往大了讲计算机系统中由操作系统管理的具有名称的存储区域#xff0c;往小了讲是生活中的PPT、Excel、word三剑客、视频文件、音频文件等。 创建打开文件#xff1a; open…一、文件永久存储
如何将数据永久的存放在硬盘上具体如下。 1.打开文件 定义往大了讲计算机系统中由操作系统管理的具有名称的存储区域往小了讲是生活中的PPT、Excel、word三剑客、视频文件、音频文件等。 创建打开文件 open()函数 字符串 含义 ‘r’ 读取默认 ‘w’ 写入如果文件已存在则先截断清空文件 ‘x’ 排他性创建文件如果文件已存在则打开失败 ‘a’ 追加如果文件已存在则在末尾追加内容注1 ‘b’ 二进制模式注2 ‘t’ 文本模式默认注3 ‘’ 更新文件读取和写入
文件对象的各种方法及含义 方法 含义
f.close() 关闭文件对象f.flush() 将文件对象中的缓存数据写入到文件中不一定有效f.read(size-1, /) 从文件对象中读取指定数量的字符或者遇到 EOF 停止当未指定该参数或该参数为负值的时候读取剩余的所有字符f.readable() 判断该文件对象是否支持读取如果返回的值为 False则调用 read() 方法会导致 OSError 异常f.readline(size-1, /) 从文件对象中读取一行字符串包括换行符如果指定了 size 参数则表示读取 size 个字符f.readlines(size-1, /) 从文件对象中读取所有字符串包括换行符然后按行为单位存储到列表中 如果指定了 size 参数则表示读取 size 个字符如果 size 参数指定的字符个数少于第一行字符个数则仍然存放第一行字符其他行也一样它是按 “行” 为单位存储的f.seek(offset, whence0, /) 修改文件指针的位置从 whence 参数指定的位置0 代表文件起始位置1 代表当前位置2 代表文件末尾偏移 offset 个字节返回值是新的索引位置f.seekable() 判断该文件对象是否支持修改文件指针的位置如果返回的值为 False则调用 seek()tell()truncate()方法都会导致 OSError 异常f.tell() 返回当前文件指针在文件对象中的位置f.truncate(posNone, /) 将文件对象截取到 pos 的位置默认是截取到文件指针当前指定的位置f.write(text, /) 将字符串写入到文件对象中并返回写入的字符数量字符串的长度f.writable() 判断该文件对象是否支持写入如果返回的值为 False则调用 write() 方法会导致 OSError 异常f.writelines(lines, /) 将一系列字符串写入到文件对象中不会自动添加换行符所以通常是人为地加在每个字符串的末尾
例1 fopen(FishC.txt,w) #存在FishC文件则打开不存在则创建文件。f.write(I love Python)
13f.writelines([I love FishC.\n,I love my wife.]) # 文件写内容f.close() # 文件对象关闭了数据才能写入到文件中。执行完f.close()后打开文件内容才能写入。例2 fopen(FishC.txt,r) # r可以读取和写入。f.readable() # 可以读取
Truef.writable() # 可以写入
Truefor each in f: # 将文件放到for语句进行读取print(each)I love PythonI love FishC.I love my wife.
# f.read()文件读取但没有内容。原因是文件内部有个文件指针它负责指向文件的当前位置当在文件中读取一个字符的时候它这个文件指针就会指向下一个字符直到文件结尾。f.read() f.tell() # 文件末尾的位置
43f.seek(0) # 修改文件指针输入0时指向开头。
0f.readline() #读取一行
I love PythonI love FishC.\nf.read() # 读取到文件的末尾
I love my wife.例3 f.write(I love my WIFI)
14f.flush() # 不关闭文件将内容写到文件中。f.truncate(29) # 截断操作读取到29的位置
29f.close()fopen(FishC.txt,w) #打开文件什么都不做再关闭文件是空的。f.close()课后题 1. “在打开一个文件对象之后大多数的文件操作都是在缓冲区里面进行的。因此如果希望将文件内容保存我们需要使用 close() 方法关闭文件对象这样数据才能从缓冲区写入到文件中。”那么请问大家有没有办法在不关闭文件对象的情况下进行内容的保存呢 答使用 flush() 方法。 2. 请问如果指定 readline(size-1) 方法的 size 参数为 3那么表示的含义是什么 答读取 3 个字符。 解析虽然是 readline() 方法但如果执行 size 参数的话那么指定的还是读取的字符个数而非行数。 3. 请问下面代码会在文件中写入几行字符串呢 f open(FishC.txt, w)f.writelines([FishA, FishB, FishC])f.close()答一行。 解析writelines() 方法虽然名字叫 “写入多行数据”但其实它并不会自动添加换行符所以通常我们是需要人为地将换行符加在每个字符串的末尾。 4. 请问在课堂中的代码为什么我们写入的时候只有一个换行符但是使用 for 语句读取并打印出来却多了一个空白行呢 f open(FishC.txt, w)f.writelines([I love FishC.\n, I love my wife.])f.close()f open(FishC.txt, r)for each in f:
... print(each)
...
I love FishC.I love my wife.答当 for 语句作用于文件对象时是按行进行迭代的也就是将文件中的每一行内容读取到 each 变量中这样理论上打印出来应该是两行而非三行。 因为 print() 函数默认是会在末尾添加一个换行符如果将代码改成下面这样就不会了 for each in f:
... print(each, end)
...
I love FishC.
I love my wife.5. 请问下面代码为什么会报错 f open(C:\Users\goodb\Desktop\FishC.txt, w)
SyntaxError: (unicode error) unicodeescape codec cant decode bytes in position 2-3: truncated \UXXXXXXXX escape答因为路径中存在转义字符导致文件路径解析错误。 应该这么改 f open(rC:\Users\goodb\Desktop\FishC.txt, w)6. 使用 “w” 模式打开文件之前一定要注意什么 答一定要注意指定文件是否已存在。 解析如果该文件已存在并且包含了内容那么使用 “w” 模式打开将直接抹去原有的内容导致原有数据丢失是很可怕的事情。 7. 如果一个文件不存在是否可以使用 “a” 模式将其打开 答可以。 解析 相对于 “w” 模式来说“a” 模式会比较 “温和”指定文件如果存在的话后者不会导致数据丢失而是使用追加的方式将数据写入文件。 不过注意不存在说哪一个模式更优秀的说法因为将一切情况都考虑在内是每一个优秀程序员的职责所在。 8. 文件指针的作用是什么 答指示文件对象当前读取或者写入的位置。 9. 什么是 EOF 答End Of the File表示文件末尾的位置。 解析如果在读取模式中当文件指针指向 EOF 的时候说明文件已经全部读取完毕。 10. 如何知道文件指针当前指定的位置 答可以使用 tell() 方法来追踪文件指针的位置。 f.tell() 返回当前文件指针在文件对象中的位置
课后题来自小甲鱼python永久存储(上)