编程学习第六天,参数传递

好的,编程学习来到了第六天,昨天我们学到了argv模组,学到了解包的概念,厉害的不行,今天就继续昨天的学习吧。


习题14提示和传递

本节学了一个简单的raw_input提示:

prompt = '>'

print "What's your name?"

variable = raw_input(prompt)

输出后就是:

What's your name?

>

就是说'>'符号充当了输入的提示符,样子特别的舒服。

另外加分习题还再次强调了一遍"""三个引号是定义多行字符串的,"%"是字符串的格式化工具,算是加深记忆了。


习题15读取文件

本节开始学习读取文件,raw_input和argv都是学习读取文件的基础,也就是说传一个参数变量,可以把脚本名和要操作的文件名一起传给argv,再在脚本里解包,从而可以操作文件。

因此本节练习需要两个文件,一个脚本文件和一个txt文件,本节的目的是读取txt文件的内容。

具体命令如下:

#打开文件
txt = open(filename)

#输出文件名
print "Here's your file %r:" % filename
#输出文件内容
print txt.read()
txt.close()

自己按照加分习题还写了注释的说。

为了读取文件,学习了新的命令:open(),根据pydoc,open命令加上文件名作为参数,可以返回一个file类型的对象,而open命令是打开文件的首选方式。

另外为了打开file对象,我们还学习了.read()命令,对于file类型的对象,.read命令是file对象的一个函数,用来读取file对象并输出字符串,于是我们就能用print file.read()来输出文件内容了。

加分习题部分提出了一个问题:如果只是用raw_input来写脚本,哪种得到文件名称的方法更好,以及为什么。

最好的肯定是直接输入文件名就可以打开文件了,但是涉及到的问题还是文件的后缀名问题,如果确定是txt文件,那么在open()命令里拼接一下.txt后缀就好了,如果不确定后缀而只输入去掉后缀的文件名时,那我可以遍历一下文件名去掉后缀后和输入的字符串一样的文件,如果只有一个那就直接打开,如果有一个以上,就把他们完整的文件名依次用数组保存,再加上序号用字符串格式输出,让用户输入序号选择打开哪个,选哪个就直接打开哪个,这是我能想到的最好的办法了吧。。

根据pydoc file文档下的read命令部分,read的用法是read([size]),返回的是string类型的值,也就是可以定义读取多少byte的文件,实际测试后发现如果这个数大于文件字节数,就读取全部,小于则读取指定字节数的字符。

另外read之后要执行一下close命令,也就是处理完文件需要将其关闭,这是很重要的。



习题16读写文件

本节继续读写文件的练习,文件(file对象)相关的命令如下:

close():关闭文件。跟编辑器的 文件->保存 一个意思。

read([int]):读取文件内容。可以把结果赋给一个变量。

readline([int]):读取文本文件中的一行。也可以设定数字,即读取规定文本字节数的行,这样做的结果是可能会读取多行。

truncate:清空文件。小心使用。

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

write需要一个字符串做参数,从而将字符串写入文件。

本节练习的内容是清除一个文件,然后写入三行文字进去。

首先是打开文件:target = open(filename,'w'),使用'w'模式打开文件,这里用'w'模式,如果没有文件,那么就会创建一个文件名是filename的文件并打开,如果不用'w'模式,那么就会报No such file or directory的错误。

然后是清除文件:target.turncate(),运行到这步时打开文件,可以看到文件内容已经被清除的一干二净了。

然后输入三行文本(line1...),再使用target.write(line1)等命令,将三行文字用转义字符'\n'隔开写入到打开的文件里,最后target.close()关闭打开的文件,至此输入的三行文本已经被保存到文件里了。

关于open命令以及open命令的参数,我找到了一篇博客:

python:open/文件操作
可以看到,当我们使用'w'模式打开文件时,若文件存在,则先清空文件,然后(重新)创建,文档对于'w'模式是这么写的:open for writing, truncating the file first,因此我们用'w'模式打开文件后,文件已经被truncate了,所以没有必要再用一次truncate命令了,这也是加分习题的一道题(使用'w'模式打开文件后,还有必要truncate吗)。

另一篇关于open命令的文章,写的更详细更好:

Python open()文件处理使用介绍

至于为什么要用'w'模式打开文件,至此应该也清楚了,open对于文件的写入操作态度是安全第一,因此open命令的默认模式是'r'或'rt',即文本只读模式,这样脚本只能读文件,而不能操作文件,保证了文件的安全,只有我们特别指定写入等操作模式后,才能对文件进行更改。



好的,那么今天也就到这了吧。。今天学习了很多对于文件的操作,有open和他的各种模式,针对file类型对象的各种操作,学到的还是很多的,主要是终于可以突破这个框框,不再局限在脚本内的输入输出,而去到更广阔的空间了,这一点觉得自己还是收获颇丰的~今天也学了很久,虽然是边看斗鱼直播边学,而且也才做了两节练习,但是觉得可以操作文件了,还是很有成就感的,那就到这吧,明天继续!


还是想说几句。。到今天为止,已经和(前)女友有三周时间没有联系了,大家应该都默认这个结局了,我们处了两年的时间,算上上一个女友,我大概没有单身已经五六年了,如今回到了单身生活,现在的我觉得非常的轻松,真的,觉得自己放下了好多,生活变得很轻松,也没有说觉得好像分了之后有多难受,但是也没有像在网上看到的那些男人,好像分手之后就可以得到新天地了,世界之大可以任他遨游的感觉,我只是觉得放下了很多,轻松了很多,生活也不沉重了,担子也轻了很多,以前两个人要时时照顾对方,照顾不到照顾不好会被骂会生气,现在只照顾自己,反倒没有那么多的不开心了,我想两三年内都不要找对象了,就算最后变成大龄青年也无所谓了,遇不到对的人,也就不勉强了,自己不成熟,也就不去坑别人了,自己开心才是最好的,我想最近开始学习也是因为这个变故吧,开始能沉住气了吧,总的来说,这样可能反而挺好,现在她如果回头找我,我可能反而不会再接受她了。


那就这样吧,一边写着生活一边学习,这感觉还不错,希望自己能走的更远吧,今天就到此结束了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值