【Tip】Python
『基本操作』
【查看Python所在目录】
import os
print(os.__file__)
【查看已安装的包】
pip list
【获取当前脚本所在目录】
import sys
import os
print(sys.argv[0]) #当前脚本所在目录
print(sys.path[0]) #当前脚本所在目录
print(os.path.split(os.path.realpath(__file__))[0]) #当前脚本所在目录
print(__file__) #当前脚本所在 路径 curr_path = sys.path[0]
if not os.path.isdir(curr_path):curr_path = curr_path[0:curr_path.rfind('\\')]
【检查变量是否存在】
return ('VAR_NAME' in dir())
〖日期时间〗
【日期时间操作】
import datetime, time #【获取时间戳】
timestamp = int(time.mktime(time.localtime())) #【格式化当前时间】
dtime = datetime.datetime.now()
print(dtime.strftime('%Y-%m-%d %H:%M:%S')) #年-月-日 时:分:秒
print(dt.isoweekday()) #星期(1-7:一~日) #【字符串转时间】
t=time.strptime('2017-11-22 12:34:56','%Y-%m-%d %H:%M:%S')
y,m,d,h,min,s=t[0:6] #保存时间各部分变量
dtime = datetime.datetime(y,m,d,h,min,s)
print(dtime) #【日期加减】
# 获得今天的日期
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1) #昨天
tomorrow = today + datetime.timedelta(days=1) #明天
【睡眠n秒】
import time time.sleep(3) #睡眠3秒
〖字符串〗
【左边自动补零】
#way-1: 生成分秒为[1,59]随机数的时间字符串,当分秒<10时左边自动补零
tstr='2018-01-22 09:{:0>2d}:{:0>2d}'.format(int(random.uniform(1,59)),int(random.uniform(1,59))) #way-2:000123
print(str(123).zfill(6))
『文件/文件夹/IO操作』
【读取文件】
open('c:\\xxx', 'r', encoding='utf-8').read()
【遍历文件夹】
import sys
import os
#遍历列举脚本所在目录下所有文件
for parent,dirnames,filenames in os.walk(sys.path[0]):
for fn in filenames:
print(fn)
break # stop iterate dirs
import os
import os.path
res = ''
#三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for parent,dirnames,filenames in os.walk('G:\hylt'):
for fn in filenames:
res += (fn+'\r\n')
#print(res)
【保存文件】
sv = open('temp_file.txt', 'w')
sv.write(res)
sv.close()
print('END')
『数据操作』
【对象—> json字符串(dumps)】
import json data = {
'name' : 'ACME',
'shares' : 100,
'price' : 542.23
}
# 对象转json
json_str = json.dumps(data) # --json保存到文件
with open('data1.json', 'w') as f:
json.dump(data, f)
【json字符串—>对象(loads)】
import json # json转对象
jobj = json.loads('{"f1":"aaa","f2":345}') # --从文件读取json(为对象)
with open('data1.json', 'r') as f:
jobj = json.load(f)
【string、对象互转】
# 把一个对象转换为字符串,类似java的toString()
_str = repr(object) # 把repr() 转换的字符串 变为对象
_obj = eval(_str)
【 列表操作】
『Pandas操作』
-
『常用方法』
【网络下载】
from urllib import request #----------------------------------------------------------------------
def get_data(url, encoding='utf-8'):
"""获取网络资源"""
i_headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
'Connection': 'keep-alive'
}
req = request.Request(url, headers=i_headers)
uri = request.urlopen(req)
html = ''
if url == uri.geturl():
html = uri.read()
html = html.decode(encoding)
return html
【Tip】Python的更多相关文章
- 【Lab】Python改bat文件
[Lab]Python改bat文件 给出一个特定的树形结构,每一层的数字依次递增后,按照从上到下,同时从左到右这样的顺序生成.这么说还是不太明白,比如下面这个简单的树形结构. 按照顺序应该写成这样[3 ...
- 【转】Python函数默认参数陷阱
[转]Python函数默认参数陷阱 阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]) ...
- 【转】Python多进程编程
[转]Python多进程编程 序. multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Pytho ...
- 【导航】Python相关
[博客导航] Python相关导航 [索引]Python常用资源(从新手到大牛) [任务]Python语言程序设计.MOOC学习 [笔记]Python集成开发环境——PyCharm 2018.3下载. ...
- 【转】Python模块学习 - fnmatch & glob
[转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...
- 【转】Python之mmap内存映射模块(大文本处理)说明
[转]Python之mmap内存映射模块(大文本处理)说明 背景: 通常在UNIX下面处理文本文件的方法是sed.awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力 ...
- 【转】python之模块array
[转]python之模块array >>> import array#定义了一种序列数据结构 >>> help(array) #创建数组,相当于初始化一个数组,如: ...
- 【转】python 退出程序的方式
[转]python 退出程序的方式 python程序退出方式[sys.exit() os._exit() os.kill() os.popen(...)] 知乎说明 http://www.zhihu. ...
- 【转】python 面向对象(进阶篇)
[转]python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 ...
随机推荐
- Unity ----- 对象池GameObjectPool
孙广东 2014.6.28 非常早之前看到的外国文章,认为不错,分享一下. 对象池在AssetStore中也是有非常多插件的,可是有些重了.自己写一个轻量的岂不是非常好. 当你须要创建大量某种类型对象 ...
- android studio——Could not find method externalNativeBuild()
gradle同步工程时出现错误 Error:(36, 0) Could not find method externalNativeBuild() for arguments [build_cazi7 ...
- 通过Java反射做实体查询
我们在使用hibernate的时候,查询的时候都会和实体中的一些字段相结合去查询,当然字段少了,还算是比较简单,当字段多了,就不那么容易了,所以就自己写了个方法,根据实体中的字段信息去查询,废话不多说 ...
- 程序员笔记|如何编写高性能的Java代码
一.并发 Unable to create new native thread …… 问题1:Java中创建一个线程消耗多少内存? 每个线程有独自的栈内存,共享堆内存 问题2:一台机器可以创建多少线程 ...
- Python开发【第3节】【Python分支结构与循环结构】
1.流程控制 流程: 计算机执行代码的顺序就是流程 流程控制: 对计算机代码执行顺序的管理就是流程控制 流程分类: 流程控制共分为3类: 顺序结构 分支结构/选择结构 循环结构 2.分支结构(if. ...
- Marlin固件之—:基础入门与測试
一.Marlin的简介 Marlin固件是一个3D打印的开源固件,3D打印固件有很多,Marlin最为健全和强大,当然相对也会复杂一些.使用Gcode控制爱.Gcode是数控机床等工控控制使用范围较广 ...
- IP数据报首部格式
IP协议提供不可靠.无连接的数据报传送服务. 不可靠:尽力而为地传输,不保证IP数据报能成功到达目的地. 无连接:每一个数据报之间相互独立地进行路由选择,可不按发送顺序接收. IP首部格式例如以下: ...
- activity栈管理的3种方式
一.背景 在android开发过程最经常使用的组件非activity莫属. 通过分析activity的各种跳转,执行同学能够分析用户的各种行为.更重要的一点是在做插件化的过程中,我们经常会对activ ...
- WIN7不能被远程桌面问题
不知从何时起,我的机器不能被远程桌面.在其他机器远程我,最后都提示"凭据不工作",账号和密码肯定是正确的. 我是开了远程桌面的: 也许是新近开了防火墙的缘故?检查防火墙,3389是 ...
- 利用WebViewJavascriptBridge与UIWebView进行交互
事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS ...