最近做逆向和misc的题目,很多时候都是倒在了python的编程基础上,这是近几天对Python的一点学习总结与感悟,可能比较杂乱无章,水平太菜
字符串
设a=("abcdefghijk") (易错点:这里()容易写成[])
字符串中的部分选取:
-
a[i:i+1]:就是a[i]的意思(这里i不是index) a[:-1]=k a[:-2]=jk
函数使用
-
index: a.index('e') 4 将某值的下标打出来
-
replace: a.replace('ab',xx) xxcdefghijk a.replace('jk','') abcdefghi 这里长度也发生了变化
-
zfil: a.zfill(2) 00abcdefghijk 字符串右对齐,前面填充0
-
a.count('e') 1 查询'e'的数量
各类转换函数
进制之间的转换
-
bin() 将**数值**转换为二进制输出一个**str**为:0b######
-
int(x,a) 将**str**转换为a进制(十六进制需加0x,二进制0b)
字符与数值之间的转换
-
chr(a[i]) 一般里面都是数组
文件读入输出
f = open("11.txt","wb/rb/w")
#各种操作
f.close()
- 按行进行读取
readline()、readlines()
a=f.readline()
whlie a: //一行一行的循环读
print(a) //这里就可以进行各种操作
a=readline() //千万不要忘了,不然就进入死循环了
a = f.readlines() //读取全部内容 ,并以列表方式返回
for a in lines
print line
库函数
subprocess
python中,允许创建一个进程去执行一个新的程序。
popen
这是subprocess其中的一个类,其主要功能就是创造子进程,并且与子进程进行通信,其中如果想要输入输出的话就必须建立管道,如下
subprocess.Popen("./ida/1", stdout=subprocess.PIPE,stdin=subprocess.PIPE)
popen.communicate
popen下的类communicate,用来进行父进程与子进程的交流,如下示例:
subprocess.Popen.communicate=((’#第一个输入值\n第二个输入值\n’).encode(‘utf-8’))[0]
注意事项:
1.注意PIPE大写,Popen的P大写
2.不要忘了encode.(‘utf-8’),因为需要将python编译语言通过utf-8转变成相关字符