澳门金沙国际,一句话相当粗略,三个shell脚本解决,不跟你喜不自胜

#!/bin/bash

#!/bin/bash

Python这么些年风头一向很盛,占据了成都百货上千世界的义务,Web、大数据、人工智能、运行均有它的身形,甚至图形界面做的也很顺,乃至full-stack这么些词语刚出去的时候,就好像正是为着描述它。

#!/bin/sh
exe=”ThorIceLocker”#存放你的可执行文件的名字
des=”/home/ninetripod/Desktop/thor/debug/”#可执行文件的门径
deplist=$(ldd $exe | awk ‘{if(match($3,”/”)){printf(“%s “),$3}}’)
cp $deplist $des

#概念变量赋值时等号两边不可能有空格,不然会报命令不存在  

#概念变量赋值时等号两边无法有空格,不然会报命令不设有  

Python虽有GIL的标题造成二十多线程不可能丰盛利用多核,但新兴的multiprocess能够从多进度的角度来选取多核,甚至affinity能够绑定具体的CPU核,那一个标题也算取得消除。虽基本为全栈语言,但一些时候为了功效,恐怕依旧会去考虑和C语言混编。混编是计算机里一个不足规避的话题,涉及的东西很多,技术、架构、共青团和少先队气象、管理、客户等种种环节只怕对其都有震慑,混编这几个题材自个儿想开时候再开一贴专门钻探。本文只讲python和C混编的艺术,大概有如下三种方法(本文背景是linux,其余平台能够类比):

# 运维shell脚本二种办法
# ① 、作为演讲参数 /bin/sh test.sh ;  ② 、作为可执行文件 chmod +x
./test.sh
blog_url=”
# 1、
#号截取,从左往右删除从0早先到首个地位优异原则(‘//’)部分,保留剩余部分
echo ${blog_url#*//}
#运作结果 如下  www.cnblogs.com/Bighua/p/7535900.html

# 运行shell脚本二种方法
# 一 、作为解说参数 /bin/sh test.sh ;  ② 、作为可执行文件 chmod +x
./test.sh
blog_url=”
# 1、
#号截取,从左往右删除从0初阶到第①个万分原则(‘//’)部分,保留盈余部分
echo ${blog_url#*//}
#运维结果 如下  www.cnblogs.com/Bighua/p/7535900.html

共享库

#2、 
##号截取,从左往右删除从0初叶到结尾3个合营原则(‘/’)部分,保留盈余部分
echo ${blog_url##*/}
#运维结果如下  7535900.html

#2、 
##号截取,从左往右删除从0初叶到终极3个一双两好原则(‘/’)部分,保留盈余部分
echo ${blog_url##*/}
#运行结果如下  7535900.html

通向身故之路的python笔记之与C语言混编的二种办法,Shell字符串截取。运用C语言编写翻译发生共享库,然后python使用ctypeCurry的cdll来打开共享库。

#3、%号截取,从右往左删除从#blog_url开首到第三个非凡原则(‘/’)部分,保留盈余部分
echo ${blog_url%/*}
# 运维结果如下

#三 、%号截取,从右往左删除从#blog_url起首到第三个格外原则(‘/’)部分,保留剩余部分
echo ${blog_url%/*}
# 运维结果如下

举例来说如下,C语言代码为

#肆 、%%号截取,从右往左删除从#blog_url开首到终极3个匹配原则(‘/’)部分,保留剩余部分
echo ${blog_url%%/*}
# 运维结果如下 http:

#4、%%号截取,从右往左删除从#blog_url开始到终极3个金童玉女原则(‘/’)部分,保留剩余部分
echo ${blog_url%%/*}
# 运转结果如下 http:

/* func.c */

intfunc(inta)

{returna*a;

}

#伍 、从右侧第几个起头截取几个字符
echo ${blog_url:0:7}
# 运转结果如下 http://

#⑤ 、从左边第多少个开首截取多少个字符
echo ${blog_url:0:7}
# 运转结果如下 http://

python代码为

#陆 、从左边第多少个字符初阶到告竣
echo ${blog_url:7}
# 运转结果如下 www.cnblogs.com/Bighua/p/7535900.html

#陆 、从左边第几个字符开始到截止
echo ${blog_url:7}
# 运维结果如下 www.cnblogs.com/Bighua/p/7535900.html

#!/usr/bin/env python

#test_so.py

from ctypes import cdll

import os

p = os.getcwd() + ‘/libfunc.so’

f = cdll.LoadLibrary(p)

print f.func(99)

#柒 、从右侧起数第几个字符为源点,从左往右截取多少个字符
echo ${blog_url:0-7:2}
# 运转结果如下 00

#柒 、从左边起数第多少个字符为起源,从左往右截取多少个字符
echo ${blog_url:0-7:2}
# 运营结果如下 00

测试如下

#捌 、从右起第多少个字符开头为起源,平素到最终
echo ${blog_url:0-4}
# 运行结果 html 

#八 、从右起第多少个字符起先为源点,一贯到最后
echo ${blog_url:0-4}
# 运维结果 html 

$ gcc -fPIC -shared func.c -o libfunc.so

$ ./test_so.py

9801

subprocess

C语言设计3个完整的可执行文件,然后python通过subprocess来推行该可执行文件,本质上是fork+execve。

举例如下,C语言代码为

/* test.c */#includeint func(int a)

{

return a*a;

}

int main(int argc, char **argv)

{

int x;

sscanf(argv[1], “%d”, &x);

printf(“%d\n”, func(x));

return 0;

}

Python代码为

#!/usr/bin/env python#test_subprocess.pyimportosimportsubprocess

subprocess.call([os.getcwd()+’/a.out’,’99’])

测试如下
$ gcc test.c -o a.out

$ ./test_subprocess.py

9801

相关文章