文件操作
读文件
按行读取文件
1 | f = open(file_name, 'r') |
读取文件最后一行
1 | f = open(file_name, 'r') |
list 操作
把list形状的字符串转化为list
方法1
1
2
3import ast
line_str = '[12569, 399470, 387182]'
line_list = ast.literal_eval(line_str)方法2
1
2line_str = '[12569, 399470, 387182]'
line_list = line_str[1:len(line_str)-1].split(",")
注意,这里有个坑,就是ast.literal_eval耗时超级大,如果能够很简单的转换list,则不要用ast.literal_eval,推荐使用方法2 |
两个list数组相加
方法1
1
2
3
4
5
6
7import numpy
first = [1, 2, 3, 4, 5]
second = [6, 7, 8, 9, 10]
a = numpy.array(first)
b = numpy.array(second)
c= a+b
print c方法2
1
2
3
4first = [1, 2, 3, 4, 5]
second = [6, 7, 8, 9, 10]
result = [x + y for x, y in zip(first, second)]
print result
lists中list相加
1 | lists_of_lists = [[1, 2, 3], [4, 5, 6]] |
数字类型相关操作
float
- float 保留两位小数
1
2f_num = 3.1415926
round(f_num, 2)
格式化输出
1 | msg = "{}\t{}\t{}".format("hello", "world", "!") |
python main函数接收参数
1 | from argparse import ArgumentParser |
ssh 相关
ssh 远程执行命令
1 | import subprocess |
python 执行shell命令
1 | import subprocess |
python开启http ftp服务
可以用来文件传输,方法一1
python -m SimpleHTTPServer
方法二1
2jumbo install python-httpfileserver
httpfileserver
profile函数和程序耗时
采样,运行:
1
python -m cProfile -o pprof.out main.py argv1 #如果如参数,则可以不用输入argv1
分析,按照时间排序
1
python -c "import pstats; p=pstats.Stats('pprof.out'); p.sort_stats('time').print_stats()" | less
中括号[]的正则匹配
1 | import re |
python中文乱码
1 | import sys |
python md5
1 | from hashlib import md5 |