博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

学习笔记

Posted on 2020-10-05 18:07  CoreHouse  阅读(151)  评论(0编辑  收藏  举报

学习笔记

终端代理命令,重启终端自动消失

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 快速注释

WX20200224-154807@2x
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("是否是文件夹")