Week0 作业
本周整体任务概述:
完成一个极简交互式日记系统,需求如下:
- 一次接收输入一行日记
- 保存为本地文件
- 再次运行系统时,能打印出过往的所有日记
时限: 0wd4~1wd3
- 发布: 发布到各自仓库的 _src/om2py0w/0wex1/ 目录中
- 指标:
- 包含软件使用说明书: README.md
- 能令其它学员根据说明书,运行系统,完成所有功能
大概在笨办法学python 的前20课能解决输入并保存的问题。
涉及到的参数
raw_input()
读取输入
参考:笨办法第十一节 Asking Questionsimport
将python的功能,引入到你当前的脚本,这样解释不知道对不对。argv
(rgument variable) 功能 (unpack) 类似解开包袱的功能,把argv中的东西解开,将所有参数一次赋予左边的变量名字
参考 Exercise 13: Parameters, Unpacking, Variablesopen()
打开一个文件,但并不是读取,只是一个打开的动作,read()
读取文件内容
参考 Exercise 15: Reading Filesclose
相当于保存文件.readline
读取文本文件中的一行.truncate
清空文件write(内容)
把内容这两个子写入文件
参考:Exercise 16: Reading and Writing Files
简单版本 v1.0
1 # -*- coding: utf-8 -*-
2 from sys import argv
3 ¬
4 script, filename = argv
5 ¬
6 print "打印历史日记 %r." % filename
7 DiaryFile = open(filename)
8 print DiaryFile.read()
9 ¬
10 DiaryFile = open(filename, 'a+')
11 print "---------请写入日记---------"
12 content = raw_input(">>> : ") + '\n'
13 DiaryFile.close()
使用方法 python mydaily_1.0.py mydaily.txt
一次只能写入一行,而且不带日记,继续改进。
添加了时间 v1.1
参考 Get Today’s Current Date and Time
加入时间 import time
t = time.strftime('-------%Y-%m-%d-------')
让日记输出带有时间
# -*- coding: utf-8 -*-
from sys import argv
import time
script, filename = argv
print "打印历史日记 %r." % filename
DiaryFile = open(filename)
print DiaryFile.read()
DiaryFile = open(filename, 'a+')
t = time.strftime('-------%Y-%m-%d-------')
print (t+'\n')
content = raw_input(">>> : ") + '\n'
DiaryFile.write('\n' + t+ '\n' +content)
DiaryFile.close()
添加while循环 v1.1
加入函数def
把写入的步骤定义成函数
def Wdiary():¬
print "-------今天是" + time.strftime("%Y-%m-%d")¬
print "-------如果想退出请按Q"¬
DiaryFile = open('mydiary.txt','a+')¬
t = time.strftime('-------%Y-%m-%d-------')¬
DiaryFile.write('\n' +t+ '\n')
加入循环
参考 While loops
while True:
content = raw_input("请写日记>> ")
if content.upper() in ['Q']:
break
DiaryFile.write(content+'\n')
使用时当前需要当前目录有mydiary.txt
如果没有,会报错,这点不好,需要再改进下
# -*- coding: utf-8 -*-
import time
from os.path import exists
DiaryFile = open('mydiary.txt','r')
print DiaryFile.read()
print "-------以上是历史日记------\n"
DiaryFile.close()
def Wdiary():
print "-------今天是" + time.strftime("%Y-%m-%d")
print "-------如果想退出请按Q"
DiaryFile = open('mydiary.txt','a+')
t = time.strftime('-------%Y-%m-%d-------')
DiaryFile.write('\n' +t+ '\n')
while True:
content = raw_input("请写日记>> ")
if content.upper() in ['Q']:
break
DiaryFile.write(content+'\n')
Wdiary.close()
添加os.path exists v1.2
20151104
更新,解决mydiary.txt文件不存在报错问题
添加了
from os.path import exists
if exists(DiaryFile) == True:
判断文件是否存在,如果不存在就新建一个,而不会报错