当前位置: 首页 > 图灵资讯 > 行业资讯> Python有哪些实用的脚本?

Python有哪些实用的脚本?

来源:图灵python
时间: 2024-12-11 14:39:01

学过编程的都知道,除了要写代码,测试也是很重要的环节。大家都只听说程序员小哥哥的头发是稀有的东西,那如果测试的速度变快岂不是可以早早下班?今天小编就为大家带来几个Python中几个实用的脚本。

1.解决 linux 下 unzip 乱码的问题。

importosimportsysimportzipfileimportargparses='\x1b[%d;%dm%s\x1b[0m'defunzip(path):

file=zipfile.ZipFile(path,"r")
ifargs.secret:
file.setpassword(args.secret)

fornameinfile.namelist():
try:
utf8name=name.decode('gbk')
pathname=os.path.dirname(utf8name)
except:
utf8name=name
pathname=os.path.dirname(utf8name)

#prints%(1,92,'>>extracting:'),utf8name
#pathname=os.path.dirname(utf8name)
ifnotos.path.exists(pathname)andpathname!="":
os.makedirs(pathname)
data=file.read(name)
ifnotos.path.exists(utf8name):
try:
fo=open(utf8name,"w")
fo.write(data)
fo.close
except:
pass
file.close()defmain(argv):
######################################################
#forargparse
p=argparse.ArgumentParser(description='解决unzip乱码')
p.add_argument('xxx',type=str,nargs='*',\help='命令对象.')
p.add_argument('-s','--secret',action='store',\default=None,help='密码')
globalargs
args=p.parse_args(argv[1:])
xxx=args.xxx

forpathinxxx:
ifpath.endswith('.zip'):
ifos.path.exists(path):
prints%(1,97,'++unzip:'),path
unzip(path)
else:
prints%(1,91,'!!filedoesn\'texist.'),path
else:
prints%(1,91,'!!fileisn\'tazipfile.'),pathif__name__=='__main__':
argv=sys.argv
main(argv)

2.统计当前根目录代码行数。

importos
importsys
try:
directory=sys.argv[1]
exceptIndexError:
sys.exit("Mustprovideanargument.")

dir_size=0
fsizedicr={'Bytes':1,
'Kilobytes':float(1)/1024,
'Megabytes':float(1)/(1024*1024),
'Gigabytes':float(1)/(1024*1024*1024)}
for(path,dirs,files)inos.walk(directory):
forfileinfiles:
filename=os.path.join(path,file)
dir_size+=os.path.getsize(filename)

fsizeList=[str(round(fsizedicr[key]*dir_size,2))+""+keyforkeyinfsizedicr]

ifdir_size==0:print("FileEmpty")
else:
forunitsinsorted(fsizeList)[::-1]:
print("FolderSize:"+units)

3.扫描当前目录和所有子目录并显示大小。

importos
importsys
try:
directory=sys.argv[1]
exceptIndexError:
sys.exit("Mustprovideanargument.")

dir_size=0
fsizedicr={'Bytes':1,
'Kilobytes':float(1)/1024,
'Megabytes':float(1)/(1024*1024),
'Gigabytes':float(1)/(1024*1024*1024)}
for(path,dirs,files)inos.walk(directory):
forfileinfiles:
filename=os.path.join(path,file)
dir_size+=os.path.getsize(filename)

fsizeList=[str(round(fsizedicr[key]*dir_size,2))+""+keyforkeyinfsizedicr]

ifdir_size==0:print("FileEmpty")
else:
forunitsinsorted(fsizeList)[::-1]:
print("FolderSize:"+units)

4.将源目录240天以上的所有文件移动到目标目录。

importshutil
importsys
importtime
importos
importargparse

usage='pythonmove_files_over_x_days.py-src[SRC]-dst[DST]-days[DAYS]'
description='Movefilesfromsrctodstiftheyareolderthanacertainnumberofdays.Defaultis240days'

args_parser=argparse.ArgumentParser(usage=usage,description=description)
args_parser.add_argument('-src','--src',type=str,nargs='?',default='.',help='(OPTIONAL)Directorywherefileswillbemovedfrom.Defaultstocurrentdirectory')
args_parser.add_argument('-dst','--dst',type=str,nargs='?',required=True,help='(REQUIRED)Directorywherefileswillbemovedto.')
args_parser.add_argument('-days','--days',type=int,nargs='?',default=240,help='(OPTIONAL)Daysvaluespecifiestheminimumageoffilestobemoved.Defaultis240.')
args=args_parser.parse_args()

ifargs.days<0:
args.days=0

src=args.src#设置源目录
dst=args.dst#设置目标目录
days=args.days#设置天数
now=time.time()#获得当前时间

ifnotos.path.exists(dst):
os.mkdir(dst)

forfinos.listdir(src):#遍历源目录所有文件
ifos.stat(f).st_mtime<now-days*86400:#判断是否超过240天
ifos.path.isfile(f):#检查是否是文件
shutil.move(f,dst)#移动文件

5.扫描脚本目录,并给出不同类型脚本的计数。

importos
importshutil
fromtimeimportstrftime

logsdir="c:\logs\puttylogs"
zipdir="c:\logs\puttylogs\zipped_logs"
zip_program="zip.exe"

forfilesinos.listdir(logsdir):
iffiles.endswith(".log"):
files1=files+"."+strftime("%Y-%m-%d")+".zip"
os.chdir(logsdir)
os.system(zip_program+""+files1+""+files)
shutil.move(files1,zipdir)
os.remove(files)

以上就是Python中有5个实用的脚本。更多Python学习推荐:PyThon学习网教学中心