记录文件下电子书籍是否已读过的Python小程序(源码)
来源:互联网 发布:数字报软件 编辑:程序博客网 时间:2024/04/29 09:54
程序员电脑上一般都会有很多电子书籍,有的书名字都差不多,时间长了也不记得哪些书读过,哪些书没读过。
初学Python,用它写了个小程序,生成bookList.txt文件来记录书籍是否读过:
1、将check_books.py文件放在存放电子书籍的目录下;
2、运行check_books.py -create命令初次生成记录文件bookList.txt;
3、打开bookList.txt,将读过的书籍在书籍名前面的括号中标记“*”号(注意()中的空格,标记*号后没有空格);
4、该文件夹下有新增书籍时运行check_books.py会自动在记录文件中增加书籍,并将标记置为未读;
5、通过check_books.py “文件名”可查询该书籍是否已读;
6、打开bookList.txt文件浏览查看书籍是否已读;
7、同样可用于电影、电视剧记录,方法一样。
代码:
#-*-coding:utf-8 -*-###################################################################################file name:check_books.py#功能:记录当前目录book是否已读,已读标记(*),未读标记( )#版本:v0.0#第一次生成记录文件:check_books.py -create#目录新增文件是更新记录文件:check_books.py#查看某一书籍是否已读:check_books.py 文件名###################################################################################待更新:文件夹迭代查询记录##################################################################################import os,sysdef main():FILE_NAME = 'bookList.txt'book_mark_dict = {}pwd = os.path.dirname(__file__)book_list = os.listdir(pwd)MARK = "(*)"NOTMARK = "( )"try:is_create = sys.argv[1]#新建book list 文件,所有book初始化为未读if is_create == '-create':print "Create New book list!"create_book_list(FILE_NAME,book_list,NOTMARK)returnexcept IndexError,SyntaxError:print "Updating book list..."updateFlag = Falsebook_mark_dict = read_book_list(FILE_NAME)for book in book_list:if book_mark_dict.has_key(book): #book已经存在,不处理passelse: #book不存在,插入字典,初始化为未读print '%s do not exist,update the list...' %(book)updateFlag = Truebook_mark_dict[book] = NOTMARKf = open(FILE_NAME,'w')for book in book_mark_dict:f.write('%s%s%s' %(book_mark_dict[book],book,'\n'))f.close()#查询某一book已读标记try:book_name = sys.argv[1]if book_name in book_list:print "Check the book %s read flag!" %(book_name)read_flag = book_mark_dict[book_name]if read_flag == MARK:print "You have read it!"elif read_flag == NOTMARK:print "You have not read it!"else:print "Error!"return else:print 'You input book name error!'returnexcept IndexError,SyntaxError:passif updateFlag == True:print "Update bookList finished!"else:print "No book to update!"def create_book_list(file_name,book_list,mark):f = open(file_name,'w')for book_name in book_list:f.write('%s%s%s' %(mark,book_name,'\n'))f.close()#读取book list文件,返回文件名和是否已读标记的键值对def read_book_list(file_name):try:f = open(file_name,'r')except IOError:print "BookList do not existed,Please Create bookList First!"print 'Input "check_books.py -create" to create bookList.txt'sys.exit()book_dict = {}for eachLine in f.readlines():book_dict[eachLine[3:-1]] = eachLine[0:3]f.close()return book_dictif __name__ == '__main__':main()
1 0
- 记录文件下电子书籍是否已读过的Python小程序(源码)
- 读过不错的电子书籍
- Symbain 模拟器下删除已调试的过程序
- 记录已见过的开源库
- 初学Python写的小程序,记录记录!
- 一个自动删除闲置过久文件的小程序
- 文件读写与快速排序的小程序 已完成
- Android 搜索已安装过的程序
- Python的几个文件操作小程序
- SVN记录转excel文件的小程序
- SVN记录转excel文件的小程序(windows版本)
- Python小程序,看你是否偏重
- 免费电子书籍总汇,我见过最好的东西了!
- python的小知识(持续记录)
- python程序2(递归查找某一个文件夹下所有的文件是否含有某个特定的字符串,并打印该文件名)
- python写的统计PYTHON文件的(代码行数,空行数,注释行数)小程序
- python 合并文件小程序
- 数字图像处理做过的小程序
- AngularJS进阶(二十三)ANGULAR三宗罪之版本陷阱
- 多线程总结
- leetcode刷题日记——Longest Substring Without Repeating Characters
- JAVA IO学习总结
- 成员变量和局部变量
- 记录文件下电子书籍是否已读过的Python小程序(源码)
- Java 集合框架学习总结
- 分布式统一框架的设计与实现(数据库)
- 桌面图标被渲染
- C语言变量取值范围
- JAVA多线程和并发基础
- requestWindowFeature(Window.FEATURE_NO_TITLE)无效果或者崩溃
- android camera接口介绍
- POJ 2479 动态规划 最大子序列问题(两段) Maximum sum