学习笔记
终端代理命令,重启终端自动消失
export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
vim 命令
模式 | 命令 | 说明 |
---|---|---|
esc | :wq | 退出并保存 |
esc | A | 回到行末 |
esc | I | 回到行首 |
esc | :%/a/b/g | 把a替换成b |
vim 快速注释
V:normal i #
Mac小技巧
系统目录读写权限mac Read-Only filesystem
1、重启mac,按住Command+R,等到系统进入安全模式。
2、选择一个账户,然后点击屏幕上方的工具栏找到命令行工具。
3、执行,命令 csrutil disable
4、重启电脑后,不要进入安全模式,执行命令sudo mount -uw /
5、执行命令sudo mkdir /data
6、执行命令sudo chmod 777 /data
7、重启电脑,进入安全模式,执行命令csrutil enable (开启SIP) (!!!!该步骤可以不执行)
注意!!!
2020年04月16日18:49:41更新:
我目前用的macOS Catalina 10.15.4
没有SIP直接执行sudo mount -uw /
Mac 显示/隐藏 文件
defaults write com.apple.finder AppleShowAllFiles -boolean true;killall Finder
defaults write com.apple.finder AppleShowAllFiles -boolean false;killall Finder
显示终端当前路径
$ pwd
Python 笔记
Python Gui
使用pyinstaller打包
几种不同的打包工具都试用了下,pyinstaller应该是最好用的,主要是一直有人维护。
然后在 terminal 中依次键入,
pyinstaller --windowed --onefile --clean --noconfirm main.py
pyinstaller --clean --noconfirm --windowed --onefile main.spec
pyinstaller -F -w -i start.ico GROUP3.py
其中,如果要自行设计 Mac 系统下的图标的话,那么可以替换第 1 条指令为:
pyinstaller --windowed --onefile --icon=sat_tool_icon.icns --clean --noconfirm main.py
其中图片转换地址为 https://iconverticons.com/online/
可见第一部是生成打包规则文件。
常见问题
打包是时候常常有外部数据源的需求,可以参考如下链接:
解决办法:https://www.xncoding.com/2015/09/07/python/pyinstaller.html
对于mac下单pyqt打包,还会出现精度变低的问题,解决方法:
-
方法一:
在打包出的app里面的info.plist里面添加:
<key>NSHighResolutionCapable</key>
<true/>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
- 方法二:
修改上面生成的spec的规则文件:
info_plist = {
"NSHighResolutionCapable": True,
"NSPrincipalClass":'NSApplication'
}
app = BUNDLE(exe,
name='reminder_dj.app',
info_plist=info_plist,
...
字符串截取
f = open("playlist.m3u8", "r") # 打开文件
print("文件名为: ", f.name)
for line in f.readlines(): # 依次读取每行
if line.endswith("a22ef\n"): # 读取结尾为 a22ef 的行
line = line.strip() # 把截取到的赋值
# ---------------------------------------------------------------
str = 'https://www.baidu.com/pdf/abcdefg.pdf'
print(str)
# 输出字符串,
>>>https://www.baidu.com/pdf/abcdefg.pdf
print(str.split())
# 做为一个整体截取,
>>>['https://www.baidu.com/pdf/abcdefg.pdf']
print(str.split('/'))
# 把字符串分割,
>>>['https:', '', 'www.baidu.com', 'pdf', 'abcdefg.pdf']
print(str.split('/')[0])
# 输出第一段字符串,
>>>https:
print(str.split('/')[-1])
# 输出最后一段字符串,
>>>abcdefg.pdf
print(str.split('/')[-1].split('.'))
# 把最后一段字符串再次分割,
>>>['abcdefg', 'pdf']
print(str.split('/')[-1].split('.')[0])
# 输出
>>>abcdef
# 版权声明:本文为CSDN博主「冰枫108」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
# 原文链接:https://blog.csdn.net/oHanYi1/article/details/91798529
激活某个环境
source activate MyPython3
正则表达式匹配html
1 分组
1 import re
2
3 html_str = "<h1>hahahaha</h1>"
4 abc = re.match(r"<(\w*)>.*</\1>", html_str)
5
6 a = abc.group()
7 print(a)
8 $ <h1>hahahaha</h1>
2 分组
1 import re
2
3 html_str = "<body><h1>hahahaha</h1></body>"
4 abc = re.match(r"<(\w*)><(\w*)>.*</\2></\1>", html_str)
5
6 a = abc.group()
7 print(a)
8 $ <body><h1>hahahaha</h1></body>
分组 别名
1 import re
2
3 html_str = "<body><h1>hahahaha</h1></body>"
4 abc = re.match(r"<(?P<p1>\w*)><(?P<p2>\w*)>.*</(?P=p2)></(?P=p1)>", html_str)
5
6 a = abc.group()
7 print(a)
8 $ <body><h1>hahahaha</h1></body>
之前乱记
%字符 语法
%s 字符串
%d %06d 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f 浮点数,%.02f 表示小数点后只显示两位
%% 输出 %
bool 布尔类型 Ture False
Int float long str
input() 输入的都是字符串 需要类型转换 可用 int() float() str() long() 转换
不需要解释器直接在终端运行
! /usr/bin/python3
Print打印带颜色数值
表示的参数含义
例:默认 print("\033[0;37;40m\t你的文字\033[0m")
显示方式: 0(默认\)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
字体色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
查看python路径
which python3
添加可执行权限
chmod 755 w.py 添加权限
chmod +x x.py 添加可执行权限
./w.py 执行
python3 xxx.py 执行
常用命令
clear | 清空屏幕 |
exit() | 退出python |
which | 查看命令解释器的安装位置 |
Ls -lh | /usr/bin/python 查看文件大小 |
type(x) | 查看 x 的变量类型 |
cat xxx.py | 在终端显示文件 |
逻辑运算:
与/并且 and 或 or 非 not 三种
语法实例
import
random
a = random.randint(1, 10) # 随机随机数 1-10
i = 0
while i <= 10:
print('helli')
i += 1
break # 某一条件满足时,跳出while循环,不再执行后续重复的代码
break 某一条件满足时,跳出while循环,不再执行后续重复的代码
print("你的内容", end='') # print不换行
运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
%= | 取 模 (余数)赋值运算符 | c %= a 等效于 c = c % a |
数组的方法
name_list = [ ]
name_list.append 增加 name_list.count 统计次数 name_list.insert 插入 name_list.reverse
name_list.clear 清空 name_list.extend 扩展整合 name_list.pop 删除指定 name_list.sort 排序
name_list.copy name_list.index 索引 name_list.remove 删除
元组/查看 元组的属性
info_tuple = ("zhangsan", 18, 1.75)
type(info_tuple)
制作发布压缩包
1.创建setup.py
setup.py 的文件内容 -固定格式
from distutils.core import setup
setup(name="hm_message", # 包名
version="1.0", # 版本
description="itheima's 发送和接收消息模块", # 描述信息
long_description="完整的发送和接收消息模块", # 完整描述信息
author="itheima", # 作者
author_email="itheima@itheima.com", # 作者邮箱
url="www.itheima.com", # 主页
py_modules=["hm_message.send_message","hm_message.receive_message"])
2.构建模块
$ python3 setup.py build
3.生成发布压缩包
$ python3 setup.py sdist
3.2 安装模块
$ tar -zxvf hm_message-1.0.tar.gz
$ sudo python3 setup.py install
卸载模块
直接从安装目录下,把安装模块的 目录 删除就可以
$ cd /usr/local/lib/python3.5/dist-packages/
$ sudo rm -r hm_message*
tree # 在终端显示目录树状图
brew install tree # 安装tree模块
OS模块-常用模块命令
os.remove os.removedirs os.movexattr
os.listdir(".") os.listxattr
os.mkdir("") os.rmdir("删除文件夹")
os.path.isdir("是否是文件夹")