您的位置:首页 > 编程语言 > Python开发

《笨办法学 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》系列练习计划——目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息