python常用工具让你提高工作效率--常用操作编写,方便自己操作

Posted deep_learninger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python常用工具让你提高工作效率--常用操作编写,方便自己操作相关的知识,希望对你有一定的参考价值。

python常用工具让你提高工作效率

背景

把一些常用的操作归并到一起形成一套自己的库函数会极大地提高效率,比如linux的命令cd,ls,cp,mv等在python中不容易使用,常常记不住,因此我们可以手动封装这些函数,作为以后使用的基础。

细节

新建tools.py,先引入如下的库

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
import os,sys
import shutil
import pandas as pd
import subprocess as sub 
import shlex
import json

接下来我们可以仿照php设计两个调用shell的函数,其中shell_exec返回执行输出的字符串,而passthru直接输出。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
def shell_exec(cmd):
	print "[Command]"+cmd
	sys.stdout.flush()
	c=os.popen(cmd).read()
	return c.strip()
def passthru(cmd):
	#print os.popen(cmd).read()
	#sys.stdout.flush()
    #sub.call(shlex.split(cmd),stdout=sys.stdout)
	print "[Command]"+cmd
	sys.stdout.flush()
	sub.call(cmd,shell=True,stdout=sys.stdout)

利用上面的两个函数我们可以封装常用的文件和文件夹操作。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
def mv(src,dest):
	shell_exec("mv %s %s"%(src,dest))
def cp(src,dest):
	shell_exec("cp %s %s -r "%(src,dest))
def head(src,n=1):
    return shell_exec("head -%d %s"%(n,src))
def tail(src,n=1):
    return shell_exec("tail -%d %s"%(n,src))

由于shell调用结束后工作目录自动回到原来的,所以不能用passthru来执行,必须使用如下的方法。

  • 1
  • 2
  • 3
def cd(path):
	os.chdir(path)

返回当前目录

  • 1
  • 2
  • 3
def pwd():
	return os.getcwd()

列出工作目录中的所有文件和文件夹,返回一个数组:

  • 1
  • 2
  • 3
  • 4
def ls(path='*'):
	import glob
	return glob.glob(path)

递归地创建文件夹,如果存在则不创建

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
def mkdir(path):
    path=path.strip()
    path=path.rstrip("\\\\")
    isExists=os.path.exists(path)
    if not isExists:
        os.makedirs(path)
        return True
    else:
        return False

创建文件夹并进入

  • 1
  • 2
  • 3
  • 4
def mkcd(path):
    mkdir(path)
    cd(path)

判断存在性

  • 1
  • 2
  • 3
def exists(path):
    return os.path.exists(path)    

获取路径最后的文件夹名字

  • 1
  • 2
  • 3
def dirname(path):
    return os.path.dirname(path).strip()

退出python

  • 1
  • 2
  • 3
  • 4
  • 5
def exit(info='Exited by user!'):
	print info
	sys.stdout.flush()
	sys.exit();

读写文件

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
def read(fileName):
	file=open(fileName);
	s=file.read()
	file.close();
	return s
def write(cmd,fileName,mode="w",sep=""):
	file=open(fileName,mode);
	file.write(str(cmd)+sep);
	file.close();
def loadjson(file):
    return json.loads(read(file))
def parseyaml(filename):
    try:
        import yaml
    except ImportError:
        print "You need to install python-yaml."
        exit(1)
        
    try:
        from yaml import CLoader as Loader
        from yaml import CDumper as Dumper
    except ImportError:
        from yaml import Loader, Dumper
    string = open(filename).read()
    data = yaml.load(string, Loader=Loader)
    return data

实时输出信息到log文件

  • 1
  • 2
  • 3
def debug(cmd):
    write(str(cmd),'debug.txt','a',sep="\\n")

输出多列数据到文件,比如有两列数据x=[1,2,3],y=[2,4,5],想要保存为
x y
1 2
2 4
3 5
则调用totxt(['x','y'],np.c[x,y],'a.txt')

  • 1
  • 2
  • 3
  • 4
def to_txt(columns,data,filename):
	quants=pd.DataFrame(data,columns =columns)
	quants.to_csv(filename,sep='\\t',index=None)


以上是关于python常用工具让你提高工作效率--常用操作编写,方便自己操作的主要内容,如果未能解决你的问题,请参考以下文章

代码编辑效率太低?常用Python IDE快捷键,让你事半功倍!

excel这4大逆天操作技巧,今天免费教给你,让你做表格快准狠

代码编辑效率太低?常用Python IDE快捷键,让你事半功倍!

这9个提高效率的Python工具,太赞了

Pandarallel:一款可以让你效率倍增的 Python 工具库

有哪些可以极大提高工作效率的办公神器值得推荐?