《笨办法学 python3》系列练习计划——16.读写文件
2018-03-15 11:29
555 查看
题目
上一题的加分练习中有让我们查看 file 的帮助文档,虽然 python3 中已经没有 file 这个东西了,不过我们通过help()知道了被
open打开后的这个东西是什么以及它的帮助文档,如果大家有大概看过应该有见过下面的几个方法(函数),请记住它们:
close —— 关闭文件。如同编辑器中
文件 -> 保存的作用。
read —— 读取文件内容。可以把结果赋值给一个变量。
readline —— 读取文本文件中的一行内容。
truncate(size) —— 将文件截断指定 size 字节,size 后的内容将删除请小心使用。
writer(something) —— 把 something 写入文件。
本题将练习写入文件
writer的使用。
加分练习
如果觉的自己没弄懂的话,就用老办法,个每一行加注释。至少能知道哪一行没懂。写一个和 15 题类似的脚本,使用
read和
argv读取由 基础练习 所创建的那个文本文件。
文件中重复的地方太多了,试着用一个
target.write()将
line1,
line2,
line3打印出来,可以使用字符串、格式化字符、转义字符。
找出为什么我们需要给
open多赋予一个
w参数。
我的答案
16.0 基础练习 + 16.1注释
from sys import argv # 通过解包 argv 获取 脚本名 和将要保存的 文件名 script, filename = argv # 询问是否继续编辑文件 filename print("We're going to erase %r" % filename) print("If you don't want that, hit CTRL-C (^C).") print("If you do want that, hit RETURN.") # 等待用户输入是否继续编辑 input("?") # 如果用户未输入 ctrl-c 则会继续执行 print("Opening the file...") # 打开文件对象 target = open(filename, 'w') # 没有指定 truncate() 的大小,所有实际上删除了文件的内容 print("Truncating the file. Goodbye!") target.truncate() # 获取三个 input 变量的内容 print("Now I'm going to ask you for three lines.") line1 = input("line 1: ") line2 = input("line 2: ") line3 = input("line 3: ") # 将内容写入文件(只在内存中,并未写入硬盘) print("I'm going to write there to the file.") target.write(line1) target.write("\n") target.write(line2) target.write("\n") target.write(line3) target.write("\n") # 关闭文件,将文件写入硬盘 print("And finally, we close it.") target.close()
运行以一下脚本
可以在脚本所在文件价内发现新建的文档 test.txt 打开后其内容正如我们输入的三行内容。
16.2 写一个读取脚本
# 要求用 argv 方式,所有相见载入 from sys import argv # 解包 script, filename = argv print("脚本 %r 正在读取文件: %r ..." % (script, filename)) # 打开文件 file_open = open(filename) # 用 print 打印出读取到的内容 print(file_open.read())
运行一下
16.3 优化脚本
# 太罗嗦了 16.3 题优化掉 # target.write(line1) # target.write("\n") # target.write(line2) # target.write("\n") # target.write(line3) # target.write("\n") nl = '\n' target.write(line1 + nl + line2 + nl + line3 + nl )
16.4 open 为什么多了一个 w
参数
open()的默认参数是
open(file, 'rt')也就是读取文本的模式,默认参数可以不用填写。而本题练习是写入文件,因此不适应使用
r参数,需要指定写入模式,因此需要增加
w参数。
返回目录
《笨办法学 python3》系列练习计划——目录相关文章推荐
- 《笨办法学 python3》系列练习计划——17.更多文件操作
- 《笨办法学 python3》系列练习计划——36.设计和调试
- 《笨办法学 python3》系列练习计划——15.读取文件
- 《笨办法学 python3》系列练习计划——31.作出决定
- 《笨办法学 python3》系列练习计划——20.函数和文件
- 《笨办法学 python3》系列练习计划——24.更多练习
- 《笨办法学 python3》系列练习计划——29.如果 if
- 《笨办法学 python3》系列练习计划——12.提示别人 input() 打印提示
- 《笨办法学 python3》系列练习计划——13: 参数、解包、变量
- 《笨办法学 python3》系列练习计划——23.读代码
- 《笨办法学 python3》系列练习计划——32: 循环和列表
- 《笨办法学 python3》系列练习计划——28.布尔表达式练习
- 《笨办法学 python3》系列练习计划——7. 更多打印
- 《笨办法学 python3》系列练习计划——37.复习各种符号
- 《笨办法学 python3》系列练习计划——5. 格式化字符串
- 练习16——读写文件
- 《笨办法学 python3》系列练习计划——27.记住逻辑关系
- 《笨办法学 python3》系列练习计划——33.while循环
- 《笨办法学 python3》系列练习计划——4. 变量和命名
- 《笨办法学 python3》系列练习计划——26.期中考试