脚本代码
参考案例 https://gitee.com/haujet/Diaryhttps://gitee.com/haujet/Diary
和风天气API:和风天气开发平台 ~ 高效强大的天气API,天气SDK和天气插件https://dev.qweather.com/
复制代码,保存为.pyw格式,双击运行。
'''
### 脚本用法:
这是一个 python 脚本,下载安装 python 后,双击脚本就可以运行。
### 脚本用途:
首先用文本编辑器编辑脚本,
在下面设定一个日记本根目录,
然后运行这个脚本,
脚本根据当前的日期,在日记本根目录下创建对应的年文件夹、月文件,并且打开它。
比如你的笔记本根目录是 `D:/Diary` ,今天是 2020 年 11 月 ,那么在运行此脚本后,
会自动创建上 `D:/Diary/2020/11.md` 文件,并且会打开它。
'''
import os
import datetime
import time
import platform
import subprocess
import urllib.request
import json
from datetime import datetime
# 导入requests包
import requests
日记根目录 = 'D:/666/Diary'
# 得到当前时间,格式是这样的:
# time.struct_time(tm_year=2020, tm_mon=10, tm_mday=6, tm_hour=18, tm_min=41, tm_sec=53, tm_wday=1, tm_yday=280, tm_isdst=0)
currentTime = time.localtime(time.time())
currentDate = str(currentTime.tm_year) + '-' + str(currentTime.tm_mon) + '-' + str(currentTime.tm_mday)
def get_week_weather():
url = 'https://devapi.qweather.com/v7/weather/3d?location=101180101&key=e5**********fe'
# 1. 组装请求
# url = "http://httpbin.org/get" # 这里只有url,字符串格式
# 2. 发送请求,获取响应
res = requests.get(url) # res即返回的响应对象
# 3. 解析响应
aa = res.json()
day = aa["daily"][0]
# 获取当前是周几
week_list = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
num = datetime.now().weekday()
# 星期一 6~15℃ 东南风 2级
week_weather = week_list[num] + ' ' + day["textDay"] + " " + day["tempMin"] + '~' + day["tempMax"] + '℃ ' + day["windDirDay"] + day["windScaleDay"] + "级"
return week_weather
def openFile(path):
d = datetime.today() # 获取当前日期时间
d.isoweekday() # 获取时间周几
'''
输入一个文件路径
如果路径不存在,那就先创建它
然后用系统默认方式打开这个文件
'''
sysPlatfm = platform.system() # 先获得系统信息
if not os.path.exists(os.path.dirname(path)):
try:
os.makedirs(os.path.dirname(path))
except:
print(f'创建文件夹失败:{os.path.dirname(path)}')
return False
if not os.path.exists(path):
try:
f = open(path, 'a+', encoding='UTF-8')
f.write('### ' + currentDate + ' ' + get_week_weather() + '\n')
except:
print(f'创建文件失败:{path}')
return False
else:
try:
with open(path, 'r', encoding='UTF-8') as fr:
lines = fr.read()
if (lines.find(currentDate) != -1):
pass
fr.close()
else:
fr.close()
# 追加数据
f = open(path, 'a+', encoding='UTF-8')
f.write('\n\n' + '### ' + currentDate + ' ' + get_week_weather() + '\n')
f.close()
except:
print(f'打开文件失败:{path}')
return False
try: # 如何打开文件还是要分系统的
if sysPlatfm == 'Darwin': # 如果是 MacOS 系统
import shlex
os.system("open " + shlex.quote(path))
elif sysPlatfm == 'Windows': # 如果是 Windows 系统
os.startfile(os.path.realpath(path))
elif sysPlatfm == 'Linux':
subprocess.call(["xdg-open", path])
except:
print('未能打开文件')
# 得到当前日期下的日记路径
# 类似这样的:D:/Users/Haujet/Documents//Diary/2020/10/06.md
# pathToTodayDiary = 日记根目录.replace('\\', '/').rstrip('/') + '/' + str(currentTime.tm_year) + '/' + '{:0>2d}'.format(currentTime.tm_mon) + '/' + '{:0>2d}'.format(currentTime.tm_mday) + '.md'
pathToTodayDiary = 日记根目录.replace('\\', '/').rstrip('/') + '/' + str(currentTime.tm_year) + '/' + format(
currentTime.tm_mon) + '.md'
# 打开本月的日记
openFile(pathToTodayDiary)
打包pyw文件
参考教程 【python拓展】使用pyinstaller打包py或pyw文件。_Takanawa-door的博客-CSDN博客_生成pyw文件
pip install pywin32
pip install pyinstaller
D:\666> pyinstaller -F -i favicon.ico .\Diary.pyw