jupyter文件格式是 .ipynb,想要转换成.py文件的话,执行以下命令即可:
1 |
jupyter nbconvert --to script 要转换的文件.ipynb |
会在当前目录生成一个.py文件
足迹,留给未来的自己
jupyter文件格式是 .ipynb,想要转换成.py文件的话,执行以下命令即可:
1 |
jupyter nbconvert --to script 要转换的文件.ipynb |
会在当前目录生成一个.py文件
即使是int, string, list这些在其他语言里的值类型,在python中也是对象。所以,变量简单的赋值,只是复制了引用地址,一个变量的改变会影响另一个变量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int_a = [123] int_b = int_a print(int_a, int_b) print(id(int_a), id(int_b)) int_b[0] = 456 # 修改int_b时,int_a也被修改了 print(int_a, int_b) print(id(int_a), id(int_b)) # 输出内容: [123] [123] 1996012610120 1996012610120 [456] [456] 1996012610120 1996012610120 |
Python中的浅拷贝,只会拷贝最顶层变量的基本内容,若顶层变量中存在其他子对象引用,则子对象是以引用方式传递给新变量,两个变量是浅拷贝赋值关系时,修改子对象时,两个变量内容都会改变。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
list_b = copy.copy(list_a) print(list_a, list_b) print(id(list_a), id(list_b)) # 两变量在内存中的地址不同 list_a[0] = 5 # 顶层变量各自独立,修改时互不影响 print(list_a, list_b) print(id(list_a), id(list_b)) list_a[2].append(6) # 子对象依然是引用传递,修改时有影响 print(list_a, list_b) print(id(list_a), id(list_b)) # 输出内容: [1, 2, [3, 4]] [1, 2, [3, 4]] 2756700693128 2756746622472 [5, 2, [3, 4]] [1, 2, [3, 4]] 2756700693128 2756746622472 [5, 2, [3, 4, 6]] [1, 2, [3, 4, 6]] 2756700693128 2756746622472 |
Python中的深度拷贝,会迭代拷贝所有子对象,两个变量是深度拷贝赋值关系时,修改任意一个变量互不影响。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import copy list_a = [1, 2, [3, 4]] list_b = copy.deepcopy(list_a) print(list_a, list_b) print(id(list_a), id(list_b)) # 两变量在内存中的地址不同 list_a[0] = 5 # 所有变量各自独立,修改时互不影响 print(list_a, list_b) print(id(list_a), id(list_b)) list_a[2].append(6) # 子对象也各自独立,修改时互不影响 print(list_a, list_b) print(id(list_a), id(list_b)) # 输出结果: [1, 2, [3, 4]] [1, 2, [3, 4]] 2447876842120 2447926113736 [5, 2, [3, 4]] [1, 2, [3, 4]] 2447876842120 2447926113736 [5, 2, [3, 4, 6]] [1, 2, [3, 4]] 2447876842120 2447926113736 |
go mod init # 初始化go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖文件
go mod vendor # 将依赖转移至本地的vendor文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
在后台执行PHP的脚本时,若想看进程输出内容(如脚本中的echo信息),可执行以下命令查看
1 |
strace -p {pid} -ewrite |
其中,pid是进程的pid值,可以通过ps aux|grep ‘进程名’查看。
1 |
curl -XGET '127.0.0.1:9200/【your-index】/_mapping' |
1 2 3 |
//给tags添加 age 属性: curl -X PUT 'http://127.0.0。1:9200/【your-index】/_mapping/【your-type-if-exists】' -H 'content-type:application/json' -d '{"properties":{"tags":{"type":"object","properties":{"age":{"type":"long"}}}}}' |
1 |
curl -X POST 'http://127.0.0.1:9200/_reindex' -H 'content-type:application/json' -d '{"source":{"index":"【your-old-index】"},"dest":{"index":"【your-new-index】"}}' |
1 |
curl -X DELETE 'http://127.0.0.1:9200/【your-index】' |
执行方式有,
1.1 通过PUT请求动态添加新的字段;
1.2 使用新的mapping信息,新建索引(index),再通过POST请求使用_reindex来迁移旧数据;
1.3 动态添加新字段时,如果报错(Limit of total fields [1000] in index … has been exceeded),可能是有脏数据不支持的缘故,此时重建索引(index),再迁移数据(_reindex)即可。
(如果把index比作 sql中的database,则 type 类比sql中的table),
原因是,在sql中,不同表里可以用相同的字段名(即使只是同名,存储内容可以不同),但在Elasticsearch中,同一字段表示同一内容,即使是在不同的type中。所以被认为比较鸡肋,在7.0版本后彻底放弃了。
【参考】
小米手机,安装了tasker软件,设置收到某特定号码来电时,触发一些任务(如打开某应用)。
最初tasker在前台运行时,能正常使用,触发任务后,tasker自动进入后台运行,此时再触发条件也不能执行任务了。
权限问题,给tasker【锁屏显示】、【后台弹出界面】、【显示悬浮窗】、【常驻通知】等权限,并加【后台运行锁】(多任务界面,给应用加锁)即可。
# 查看所有容器
docker ps -a
# 查看所有镜像
docker images
# 删除指定容器
docker rm [container_id|container_name]
docker rm $(docker ps -a -q)
# 删除指定镜像
docker rmi [image_id]
docker rmi $(docker images -q)
# 创建&运行容器
docker run –rm -i -t -p 8080:80 -v /tmp/web:/var/www/html -d ubuntu:latest bash
Dockerfile:
1 2 3 4 5 6 7 8 9 10 |
FROM ubuntu:16.04 LABEL maintainer="YourName <your@email>" RUN apt-get update && apt-get install nginx -y \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ && echo "daemon off;" >> /etc/nginx/nginx.conf CMD ["nginx"] |
根据Dockerfile文件创建镜像:
docker build -t yourname/nginx:0.1.2 .
安装与配置:https://www.jianshu.com/p/669ff9c19f14
group配置的使用:https://www.cnblogs.com/zhaoyingjie/p/13392938.html