当前位置:
首页 > Python基础教程 >
-
python基础教程之Python3 提升你脚本的逼格系列(一
通过输入重定向获取文件
脚本 filein.py
的内容如下:
#!/usr/bin/env python3
import fileinput
with fileinput.input() as f:
tpl = "文件名: {} 行号: {}\n 行内容: {}"
for line in f:
print(tpl.format(f.filename(),
f.lineno(),
line), end='')
使用这个脚本
chmod +x filein.py
./filein.py top.txt
终止脚本并给出错误信息
raise SystemExit('It failed!')
执行脚本
[root@sharkyun ~]# python3 error.py
It failed!
[root@sharkyun ~]# echo $?
1
脚本中输入的密码时隐藏
import getpass
user = getpass.getuser()
passwd = getpass.getpass()
print(user, passwd)
注意
getpass.getuser()
不会提示你输入用户名,而是获取到当运行脚本环境下的系统登录用户
假如你希望显示,并且使用输入的用户名请用 input()
替代
user = input('Enter your username: ')
获取终端的大小
有时候你需要获取运行脚本的大小,以便可以很正确的格式化输出
执行系统的命令并返回字符串结果
import subprocess
cmd = "top -b -n 1 -o %MEM"
cmd_ret = subprocess.getoutput(cmd)
lines = cmd_ret.split('\n')
dt = lines[0].split()[2]
print('获取时间:', dt)
for i in lines[7:]:
pid, *_, cpu, mem, _, _ = i.split()
print(pid, cpu, mem)
复制或者移动文件和目录
shutil
模块有很多便捷的函数可以复制文件和目录。使用起来也非常简单,比如:
import shutil
# 一般拷贝
shutil.copy(src, dst)
# 拷贝文件时候,连同文件的权限也拷贝,相当于 `shell` 中的 `cp -p src dst`
shutil.copy2(src, dst)
# 递归拷贝,相当于 `shell` 中的 `cp -R src dst`
shutil.copytree(src, dst)
# 移动文件
shutil.move(src, dst)
shutil.copytree()
假如被拷贝的对象中出现了符合链接文件,默认会拷贝这个符号链接指向的实际文件,假如只想拷贝符号链接本身,可以传递关键字参数,如下:
shutil.copytree(src, dst, symlinks=True)
shutil.copytree()
在进行递归拷贝时,还可以指的忽略哪些文件或目录
shutil.copytree(src, dst, ignore=shutil.ignore_patterns('*.', '*.pyc'))
当执行 shutil.copytree()
的时候,有可能会遇到错误异常的出现,比如一个无效的符合链接,一个无权访问的文件等。
避免无效的符合链接,只需要这样做
shutil.copytree(src, dst, ignore_dangling_symlinks=True)
其他的可以用捕获异常来处理
try:
shutil.copytree(src, dst)
except shutil.Error as e:
for src, dst, msg in e.args[0]:
print(dst, src, msg)
也可以递归的删除
shutil.rmtree(dst_dir)
未完,待续...
作者:千锋云计算好程序员shark
链接:https://www.jianshu.com/p/1639ec2d06f3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式