python以只读方式打开文本文件的参数_笨办法学Python 习题 16 读写文件

本文介绍了如何使用Python以只读方式打开文本文件,并通过一系列操作如读取、清空、写入文件内容。示例代码演示了如何创建一个简单的文本编辑器,包括使用`open()`函数的不同模式,如`'w'`和`'r'`,以及`write()`、`truncate()`等方法。
摘要由CSDN通过智能技术生成

如果你做了上一个练习的加分习题,你应该已经了解了各种文件相关的命令(方法 / 函数)。你应该记住的命令如下:

close – 关闭文件。跟你编辑器的 文件 -> 保存 .. 一个意思。

read – 读取文件内容。你可以把结果赋给一个变量。

readline – 读取文本文件中的一行。

truncate – 清空文件,请小心使用该命令。

write(stuff) – 将 stuff 写入文件。

这是你现在该知道的重要命令。有些命令需要接受参数,这对我们并不重要。你只要记住 write 的用法就可以了。 write 需要接收一个字符串作为参数,从而将该字符串写入文件。

让我们来使用这些命令做一个简单的文本编辑器吧# -*- coding:utf-8 -*-

import sys    #调用sys库

script, filename = sys.argv

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."

raw_input("?")

print "Opening the file..."

target = open(filename,'w')

print "Truncating the file. Goodby!"

target.truncate() #清空文件

print "Now I'm going to ask you fro three lines."

line1 = raw_input("Line1 1:")

line2 = raw_input("Line1 2:")

line3 = raw_input("Line1 3:")

print "I'm going to write thers to the file"

target.write(line1)

target.write("")

target.write(line2)

target.write("")

target.write(line3)

target.write("")

print "And finally, we close it."

target.close()

这个文件是够大的,大概是你键入过的最大的文件。所以慢慢来,仔细检查,让它能运行起来。有一个小技巧就是你可以让你的脚本一部分一部分地运行起来。先写 1-8 行,让它运行起来,再多运行 5 行,再接着多运行几行,以此类推,直到整个脚本运行起来为止。

结果:D:\python\----python>python 习题16.py ex15_sample.txt

We're going to erase 'ex15_sample.txt'.

If you don't want that, hit CTRL-C (^C) .

If you do want that, hit Return.

?

Opening the file...

Truncating the file. Goodby!

Now I'm going to ask you fro three lines.

Line1 1:i love you

Line1 2:i hate you

Line1 3:i love you and i hate you

I'm going to write thers to the file

And finally, we close it.

D:\python\----python>

加分习题

1. 如果你觉得自己没有弄懂的话,用我们的老办法,在每一行之前加上注解,为自己理清思路。就算不能理清思路,你也可以知道自己究竟具体哪里没弄明白。

2. 写一个和上一个练习类似的脚本,使用 read 和 argv 读取你刚才新建的文件。# -*- coding:utf-8 -*-

import sys

filename ='D:\python\----python\ex16_sample.txt'

print "打开 %s 文件" % filename

txt = open(filename) # 打开文件

print "阅读 %s 文件" % filename

print txt.read()

print '清除 %s 文件'% filename

txt = open(filename,'w')  # 文件进入写入模式

txt.truncate()

print "写入 %s 文件" % filename

line1 = raw_input("line1: ")

line2 = raw_input("line2: ")

line3 = raw_input("line3: ")

txt.write(line1)

txt.write('')

txt.write(line2)

txt.write('')

txt.write(line3)

print '关闭文件'

txt.close()

3. 文件中重复的地方太多了。试着用一个 target.write() 将 line1, line2, line3 打印出来,你可以使用字符串、格式化字符、以及转义字符。txt1 = open(filename)

print txt1.read()

4. 找出为什么我们需要给 open 多赋予一个 'w' 参数。提示: open 对于文件的写入操作态度是安全第一,所以你只有特别指定以后,它才会进行写入操作。

方便后期写入文件

5. 如果你用 'w' 模式打开文件,那么你是不是还要 target.truncate() 呢?阅读以下Python 的 open 函数的文档找找答案。

‘w’ 表示文件进入写入模式,target.trncater() 只是清除txt文件里面的内容。

常见问题回答

如果用了 'w' 参数, truncate() 是必须的吗?

不是必须的,“w” 可以不用清除txt文件,就可以写入文件代替。

'w' 是什么意思?

它只是一个特殊字符串,用来表示文件的访问模式。如果你用了 'w' 那么你的文件就是写入(write) 模式。除了 'w' 以外,我们还有 'r' 表示读取( read ), 'a' 表示追加 (append) 。

还有哪些修饰符可以用来控制文件访问?

最重要的是 + 修饰符,写法就是 'w+', 'r+', 'a+' —— 这样的话文件将以同时读写的方式打开,而对于文件位置的使用也有些不同。

如果只写 open(filename) 那就使用 'r' 模式打开的吗?

是的,这是 open() 函数的默认工作方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值