利用 pandas 库对数据进行简单处理的记录
安装并导入 pandas 库
安装:pip install pandas
1 | import pandas as pd |
从 csv 文件读取并添加自定义表头
1 | def read_csv_file(csv): |
安装:pip install pandas
1 | import pandas as pd |
1 | def read_csv_file(csv): |
subprocess 模块主要用于创建子进程,并连接它们的输入、输出和错误管道,获取它们的返回状态,在某种特殊情况下,我们需要对子进程的运行时间做限制,当超时时强制终止并获取输出。
subprocess 模块首先推荐使用的是它的 run
方法,更高级的用法是使用 Popen
。
Popen
方法语法格式如下:
1 | subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False, pass_fds=(),*, encoding=None, errors=None) |
常用参数:
1 | import datetime |
如下 Shell 脚本:
1 | #!/bin/bash |
在 Jenkins 中执行此脚本时,通过 Shell 调用了 Python 脚本,当 Python 脚本内部异常退出例如遇到 sys.exit(1001)
,导致异常退出码无法抓取。
这是由于 Jenkins 在执行 shell 脚本时,默认会在命令行中加上 -e
选项,该选项的作用是在脚本中遇到错误时会立即退出。这样可以确保在脚本发生错误时及时停止执行,避免继续执行可能导致更严重问题的命令。
在 Shell 脚本前手动添加
set +e
来禁用该选项。即可继续执行后续命令。
PS:Jenkins 在执行 shell 脚本时,默认会在命令行中加上 -xe
选项, 该选项的作用是在脚本运行时打印每一行命令以及运行中遇到错误时会立即退出。这样可以确保在脚本发生错误立即中断。
1 | def get_log_file(log_dir): |
改动
if file.endswith(".log")
可查找任意后缀的文件。
当向 gitlab 推送 tag 时自动生成 Release 发布包的自动 CI 功能
首先在对应仓库生成一个 Project Access Token,授权 api 和 write_repository 权限,然后在仓库的设置-CI/CD 新增 Variable 名称为 ACCESS_TOKEN、值为上一步生成的 Token。
当有推送 tag 时、自动触发 gitlab CI 任务
编写 CI 配置文件 .gitlab-ci.yml
1 | Create_Release: |
原本博客的发布方式为:
这样直接将生成的可以运行的实际产物(生产版)推送到 GitHub 仓库上,而不是博客源码(开发版),每当本地环境变更或者想在别的电脑上写文章时就麻烦了、必须得重新部署一遍环境,而且也不会留存历史变更记录。详细参见之前的博文:用 hexo + gitpage 搭建博客以及 gitpage 绑定自定义域名。
由此想到,何不把博客源码推送到 Github 仓库中,利用 GitHub 来对源码进行版本控制,同时也利于博客未来的维护、更新!以下就是折腾记录。
CentOS 7 的版本安装好之后默认自带的是 gcc 4.8,为了支持编译 c++ 的更高版本需要安装高版本的 gcc,
由于手动下载编译高版本可能会导致一些不可预料的意外情况,故采用安装 devtoolset工 具来解决。
安装 centos-release-scl
sudo yum install -y centos-release-scl
安装 devtoolset,这里可自行对照选择相应的版本号
sudo yum install -y devtoolset-8
激活 gcc 环境
1 | # 当前终端生效,临时使用一次的情况 |
验证结果
gcc -V
MUMPS Solver 是一种用于求解大规模线性方程组的开源软件,Mumps官网:https://mumps-solver.org,获取 MUMPS Solver 源代码可在https://mumps-solver.org/index.php?page=dwnld 提交信息后获取。