当用户输入数值的时候,我们并不知道用户所输入的是属于股票名称还是股票代码,这意味着使用pymongod find的时候,并不知道输入的值是属于那个column的,这时候可以使用$or来解决, 这样pymongo就会find出所有对应数据。

Dataset= db['Data']
tickers = Dataset.find({ '$or':[{'code':{'$regex':selected_keywords}},
{'name':'$regex':selected_keywords}}]})

参考:

How to query with multiple conditions and those conditions are dependent Ask Question

今日学习Hands-On Machine Learning with Scikit-Learn and TensorFlow 的第三章的时候需要导入MNIST 数据库,后来死活连不上远程服务器,结果发现,sklearn 0.20版本后不再提供fetch_mldata的数据下载。

#源代码
from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')

最后通过官网发现,需要更改函数,修正方法:

from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', version='active')

或者:

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

注意:
MNIST不再按照顺序排列,原来的X[36000]为5, 更新后的X[36000]为9。

参考:
https://scikit-learn.org/dev/modules/generated/sklearn.datasets.fetch_openml.html

https://github.com/ageron/handson-ml/issues/7

1. 安装cron

一般来说cron是默认自带的,如果没有的话需要安装:

apt-get install cron

2. 查看cron状态、启动cron

/etc/init.d/cron status     #查看状态
ps -ef|grep cron            #也行
/etc/init.d/cron restart    #启动服务
service start cron          #也可以

3. 修改cron任务

没有vim的可以先安装vim: sudo apt-get install vim-gtk
然后修改/etc/crontab文件进行定时任务

3.1 cron文件设置详细

分时:0 - 59
小时:0 - 23
日期:1 - 31
月份:1 - 12
周:  0 - 6
分  时  日   月   周   权限      命令     文件
0   7   *    *   *    root    mpg123 ~/wakeup.mp3  #每天7时以root的权限运行mpg123的命令
0   7   *    *   0    root    mpg123 ~/wakeup.mp3  #每周日7时以root的权限运行mpg123的命令
0   7   *    12   0    root    mpg123 ~/wakeup.mp3  #每年12月的每周日7时以root的权限运行mpg123的命令
0   7   31    *   *    root    mpg123 ~/wakeup.mp3  #每月31号的7时以root的权限运行mpg123的命令

4. 开启crontab的日志功能

    修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉;

    重启rsyslog服务sudo service rsyslog restart;

    重启cron服务sudo service cron restart;

5. 添加python的py

下面的这段话是来自Bingo_Python的博客:
运行注意:

  虽然你直接python XXX.py可以的,但是在/et/crontab里面需要设置好运行命令的绝对路径和被执行文件的绝对路径,即可实现执行py文件

  在这非常感谢“匡子语”的帖子:https://www.cnblogs.com/dplearning/p/6633329.html

  简单粗暴的解决了crontab运行python文件由于环境变量的问题,我是小白,以下理解有问题请多多指教,之前在网上找了很多帖子,有的人运行py文件,用sh脚本,在里面通过#!/bin/sh方式然后在vim /etc/crontab 里面运行sh文件,但是我还是不行(执行权限和环境变量都没问题)。

  还有的人是通过修改crontab环境变量让其执行py文件的时候识别,其实既然crontab它本身不具备我们平时运行的环境变量,那我完全可以不要环境变量,即python版本的安装绝对路径如路径:/home/bingo/python/python3.4  py文件路径:etc/111.py   我们完全可以在crontab里面直接运行命令是(/home/bingo/python/python3.4 etc/111.py),以下是成功的截图,这就不存在环境变量的问题了,红色方框内容就是当crontab到时间执行这条命令的时候他直接找运行环境的路径的工具,然后执行后面路径的py文件,即可完美运行py文件。

其实他的主要意思是用绝对路径来运行程序就不会出错。以我为例,系统安装了pyhton2.6,而virtualenv安装了python3,那么我执行任务的时候想使用virtualenv的python3 来执行任务,那么在cron文件下就需要这样添加:


# 每天晚上9点45分执行sched.py的文件,而这里的python3.5就是使用了virtualenv环境下的python
45 21   * * *   root    /root/py3env/bin/python3.5 /root/xxxxx/sched.py
    

参考:python3
https://www.cnblogs.com/Bingo0-python/p/7751977.html
https://www.cnblogs.com/dplearning/p/6633329.html