这个bug困扰了我一阵,直到在 http://www.codingke.com/question/15489 找到了解决问题的钥匙,真是没想到居然是这个原因导致的。
下面是出错信息,可以看到只要目录下有canedar.py连其它python文件都执行不下去了。
D:\workspace\python\.calendar >python pc.py Traceback (most recent call last): File , in <module> import calendar File , in <module> result = calendar.calendar() TypeError: 'module' object is not callable D:\workspace\python\.calendar >python calendar.py Traceback (most recent call last): File , in <module> import calendar File , in <module> result = calendar.calendar() TypeError: 'module' object is not callable D:\workspace\python\.calendar >
删掉或者改名canendar.py就OK了,下面是输出:
D:\workspace\python\.calendar >python pc.py January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su November Mo Tu We Th Fr Sa Su D:\workspace\python\.calendar >
打印这么整齐的日历就寥寥五六行代码:
#日历模块 import calendar #calendar() 获取指定年份的日历字符串 result = calendar.calendar(2019) print(result) #month()获取指定月份的日历字符串 result = calendar.month(2019,11) print(result)
日子总是过得飞快,转眼2019年只剩下两个月了,你今年的计划都完成了吗,明年又有什么规划呢?附赠2020年年历如下:
2020 January February March Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 1 1 2 3 4 5 6 7 5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14 12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21 19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28 26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31 April May June Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 1 2 1 2 3 4 5 6 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30 31 July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 1 1 2 3 4 5 5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12 12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19 19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26 26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30 30 31 October November December Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12 11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19 18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26 25 26 27 28 29 30 31 29 30 27 28 29 30 31
可以看出这份年历和上面的不一样了,上回指定的是周一为第一天,这回指定的是周日为第一天,代码也做了相应调整:
#日历模块 import calendar #calendar() 获取指定年份的日历字符串 calendar.setfirstweekday(calendar.SUNDAY) # 这里指定周日为第一天 result = calendar.calendar(2020) print(result)
--END-- 2019年11月4日16:51:51