目录

  • 1.根据当前时间戳,创建新文件夹
  • 2.把小数转化为百分比形式
  • 3.需要获取指定目录下面的所有文件:
  • 4.os
  • 5. 实时获取Android手机的日志
  • 6. 豆瓣top250爬虫
  • 6.根据ip地址查询归属地
  • 7.如何查询集合的差集?

打印hello world

#!/usr/bin/python
# -*- coding: UTF-8 -*-if __name__ == '__main__':print("hello world")//pip清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt

1.根据当前时间戳,创建新文件夹

使用场景:如果需要多次重复的产出文件,可以通过如下的方式来根据时间戳创建新的文件夹,用来区分存储文件。

def getCurrentTime(dirPath):"""根据时间戳,创建指定输出文件:param dirPath::return:"""if os.path.exists(dirPath+time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))):print("error:此文件夹已经存在,请检查后,自行删除此时间戳下的文件夹")else:print("不存在")os.makedirs(dirPath+time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())))print("创建 {} 成功".format(dirPath+time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))))print(time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())))

效果

2.把小数转化为百分比形式

使用场景:需要把计算出来的小数转化为百分数形式,且结果保留两位小数形式

def getPercent(doubleNum):"""把小数转化为百分数:param doubleNum: double类型参数:return: 如:97.25%"""return "%.2f%%" % (doubleNum * 100)

效果:

3.需要获取指定目录下面的所有文件:

def getFiles(Path):"""传入指定的路径,打印路径下面的所有文件:param Path: 路径:return:"""for i in os.listdir(Path):print(i)

效果:

4.os

与文件相关的函数:

def getFatherPath(path):"""获取指定路径下面文件夹的父路径:param path: 文件路径:return: """print(os.path.dirname(path))
def getFatherPath(path):"""相关api:param path: 文件路径:return:"""print(os.path.dirname(path))# 当前文件的路径# pwd = os.getcwd()# 当前文件的父路径father_path = os.path.abspath(os.path.dirname(path) + os.path.sep + ".")# 当前文件的前两级目录grader_father = os.path.abspath(os.path.dirname(path) + os.path.sep + "..")# print(pwd)print(father_path)print(grader_father)

效果:

5. 实时获取Android手机的日志

使用场景:有的时候我们需要在控制台中同步刷新安卓手机的日志,这时候就需要我们通过如下方法,来实时在控制台中打印日志,分析日志
order就是命令,相当于在dos窗口中输出adb命令,来获取安卓日志

import subprocess
def getAndroidLogcat():"""实时获取安卓手机的日志:return:"""order="adb logcat -v time"pi = subprocess.Popen(order, shell=True, stdout=subprocess.PIPE)for i in iter(pi.stdout.readline, 'b'):print(i)

效果:

6. 豆瓣top250爬虫

# #!/usr/bin/python
# # -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup
import requests
import time
list = {}
#爬取豆瓣top250教程
def main(index):head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}baseurl = "https://movie.douban.com/top250?start="+str(index)res = requests.get(url=baseurl, headers=head)connect = res.textres = BeautifulSoup(connect, 'lxml')video = res.select('.grid_view li .info .hd')for movies in video:list[index]=movies.select('.title')[0].textindex+=1if __name__ == '__main__':index=0for i in range(10):main(index)index+=25time.sleep(6)for key, value in list.items():print(str(key+1) + ": " + str(value))输出:
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: 末代皇帝
28: 寻梦环游记
29: 活着
30: 蝙蝠侠:黑暗骑士
31: 哈利·波特与魔法石
32: 指环王3:王者无敌
33: 乱世佳人
34: 我不是药神
35: 素媛
36: 飞屋环游记
37: 何以为家
38: 十二怒汉
39: 摔跤吧!爸爸
40: 哈尔的移动城堡
41: 鬼子来了
42: 少年派的奇幻漂流
43: 让子弹飞
44: 猫鼠游戏
45: 海蒂和爷爷
46: 钢琴家
47: 大话西游之月光宝盒
48: 天空之城
49: 指环王2:双塔奇兵
50: 闻香识女人
51: 天堂电影院
52: 罗马假日
53: 绿皮书
54: 死亡诗社
55: 大闹天宫
56: 指环王1:护戒使者
57: 黑客帝国
58: 教父2
59: 狮子王
60: 辩护人
61: 饮食男女
62: 搏击俱乐部
63: 美丽心灵
64: 本杰明·巴顿奇事
65: 穿条纹睡衣的男孩
66: 窃听风暴
67: 情书
68: 两杆大烟枪
69: 西西里的美丽传说
70: 音乐之声
71: 看不见的客人
72: 阿凡达
73: 拯救大兵瑞恩
74: 飞越疯人院
75: 小鞋子
76: 哈利·波特与死亡圣器(下)
77: 沉默的羔羊
78: 禁闭岛
79: 布达佩斯大饭店
80: 致命魔术
81: 蝴蝶效应
82: 海豚湾
83: 功夫
84: 心灵捕手
85: 美国往事
86: 低俗小说
87: 摩登时代
88: 哈利·波特与阿兹卡班的囚徒
89: 春光乍泄
90: 超脱
91: 喜剧之王
92: 致命ID
93: 七宗罪
94: 杀人回忆
95: 红辣椒
96: 加勒比海盗
97: 哈利·波特与密室
98: 狩猎
99: 被嫌弃的松子的一生
100: 7号房的礼物
101: 一一
102: 唐伯虎点秋香
103: 请以你的名字呼唤我
104: 断背山
105: 剪刀手爱德华
106: 勇敢的心
107: 入殓师
108: 爱在黎明破晓前
109: 第六感
110: 重庆森林
111: 蝙蝠侠:黑暗骑士崛起
112: 幽灵公主
113: 超能陆战队
114: 菊次郎的夏天
115: 爱在日落黄昏时
116: 天使爱美丽
117: 甜蜜蜜
118: 阳光灿烂的日子
119: 小森林 夏秋篇
120: 完美的世界
121: 借东西的小人阿莉埃蒂
122: 消失的爱人
123: 无人知晓
124: 倩女幽魂
125: 小森林 冬春篇
126: 侧耳倾听
127: 时空恋旅人
128: 寄生虫
129: 幸福终点站
130: 驯龙高手
131: 教父3
132: 萤火之森
133: 一个叫欧维的男人决定去死
134: 怪兽电力公司
135: 未麻的部屋
136: 哈利·波特与火焰杯
137: 玩具总动员3
138: 傲慢与偏见
139: 釜山行
140: 玛丽和马克思
141: 神偷奶爸
142: 新世界
143: 被解救的姜戈
144: 告白
145: 大鱼
146: 哪吒闹海
147: 射雕英雄传之东成西就
148: 阳光姐妹淘
149: 头号玩家
150: 我是山姆
151: 喜宴
152: 模仿游戏
153: 恐怖直播
154: 血战钢锯岭
155: 花样年华
156: 九品芝麻官
157: 七武士
158: 头脑特工队
159: 茶馆
160: 色,戒
161: 黑客帝国3:矩阵革命
162: 惊魂记
163: 电锯惊魂
164: 你的名字。
165: 三块广告牌
166: 达拉斯买家俱乐部
167: 疯狂原始人
168: 心迷宫
169: 卢旺达饭店
170: 上帝之城
171: 谍影重重3
172: 英雄本色
173: 风之谷
174: 海街日记
175: 纵横四海
176: 爱在午夜降临前
177: 绿里奇迹
178: 记忆碎片
179: 岁月神偷
180: 忠犬八公物语
181: 荒蛮故事
182: 疯狂的石头
183: 雨中曲
184: 爆裂鼓手
185: 小偷家族
186: 无敌破坏王
187: 贫民窟的百万富翁
188: 2001太空漫游
189: 背靠背,脸对脸
190: 小丑
191: 冰川时代
192: 无间道2
193: 恐怖游轮
194: 东邪西毒
195: 真爱至上
196: 你看起来好像很好吃
197: 牯岭街少年杀人事件
198: 遗愿清单
199: 心灵奇旅
200: 魔女宅急便
201: 东京教父
202: 黑天鹅
203: 大佛普拉斯
204: 可可西里
205: 城市之光
206: 雨人
207: 恋恋笔记本
208: 源代码
209: 初恋这件小事
210: 海边的曼彻斯特
211: 人工智能
212: 虎口脱险
213: 波西米亚狂想曲
214: 青蛇
215: 萤火虫之墓
216: 终结者2:审判日
217: 罗生门
218: 疯狂的麦克斯4:狂暴之路
219: 新龙门客栈
220: 千钧一发
221: 奇迹男孩
222: 无耻混蛋
223: 二十二
224: 崖上的波妞
225: 彗星来的那一夜
226: 黑客帝国2:重装上阵
227: 末路狂花
228: 血钻
229: 房间
230: 爱乐之城
231: 步履不停
232: 魂断蓝桥
233: 花束般的恋爱
234: 战争之王
235: 火星救援
236: 谍影重重2
237: 千年女优
238: 哈利·波特与死亡圣器(上)
239: 芙蓉镇
240: 燃情岁月
241: 阿飞正传
242: 弱点
243: 谍影重重
244: 朗读者
245: 再次出发之纽约遇见你
246: 香水
247: 海洋
248: 穿越时空的少女
249: 我爱你
250: 地球上的星星

6.根据ip地址查询归属地

# -*- coding: UTF-8 -*-
import requests
from bs4 import BeautifulSoup as bs
import re
import msvcrt
import os
#用来获取指定字符串在子串的位置   如获取str2在str1里面的位置
def getStrLocation(str1,str2):'''查找指定字符串str1包含指定子字符串str2的全部位置,以列表形式返回'''lenth2 = len(str2)lenth1 = len(str1)indexstr2 = []i=0while  str2 in str1[i:]:indextmp = str1.index(str2, i, lenth1)indexstr2.append(indextmp)i = (indextmp + lenth2)return indexstr2#开始获取html页面全部内容
def getHtml(url):# print("获取到的完整url为:{}".format(url))header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}try:#超过5s就不打开了,直接提示timeoutresponce=requests.get(url,headers=header,timeout=5)#设置获取到的responce编码为gb2312,这个gb2312是通过responce.encoding/responce.apparent_encoding获取到的responce.encoding='GB2312'#经过测试,此网站输出为:gb2312# print(responce.encoding)# print(responce.apparent_encoding)# print(len(responce.text))# print(responce.text)return responce.textexcept Exception as e:print("error:爬虫失败,错误信息:{}".format(e))return "error:爬虫失败,错误信息:"+str(e)#开始获取ip信息
def getIpResult(url):txt=getHtml(url)soup=bs(txt,'html.parser')ipLocation=""#记录市ipcity=""#记录省ipProvince=""#由于我要的信息仅在head里面,所以仅要head里面的信息# print()    #Tag# print(soup.head.prettify())    #Tag# print(soup.script)    #Tag# print(soup.head.script)    #Tagfor tag in soup.head.children:if "var ip_result" in str(tag):indexBegin=getStrLocation(str(tag),"ASN归属地")indexEnd=getStrLocation(str(tag),"iP段")# print()#获取到所有的地址信息ipLocation=str(tag)[indexBegin[0]+9:indexEnd[0]-4]#获取到省信息ipProvince = ipLocation.split("省")[0]#获取到市的信息cityIndex=getStrLocation(ipLocation,"省")ipcity=ipLocation.split(" ")[0][cityIndex[0]+1:-1]ipIndex1=int(getStrLocation(url,"=")[0])+1ipIndex2=int(getStrLocation(url,"&")[0])if ipProvince != "":print("您要查询的{}地址归属地全部信息为:{}".format(url[ipIndex1:ipIndex2],ipLocation))print("您要查询的{}地址所在省为:{}".format(url[ipIndex1:ipIndex2],ipProvince))print("您要查询的{}地址所在市为:{}".format(url[ipIndex1:ipIndex2],ipcity))# text="您要查询的"+url[ipIndex1:ipIndex2]+"地址归属地全部信息为:"+ipLocation+# "\nip地址所在省为:"+ipProvince+"\nip地址所在市为:"+ipcity#拼接字符串a=('您要查询的',url[ipIndex1:ipIndex2],'地址归属地全部信息为:',ipLocation)b=('ip地址所在省为:',ipProvince,',','ip地址所在市为:',ipcity)c="".join(a)d="".join(b)e=(c,d)text="\n".join(e)outFile(text)else:print("error:ip地址可能出现问题,请检查无误后,再进行查询")# print("请按任意键退出~")os.system('pause')#正则表达式,用来判断是否是正规ip地址
def isLegal(ipaddress):real = re.compile(r'^(((25[0-5]|2[0-4]\d|1\d{2})|([1-9]?\d))\.){3}((25[0-5]|2[0-4]\d|1\d{2})|([1-9]?\d))$')if real.search(ipaddress):return Trueelse:return False#获取指定路径下面文件里面的信息
def getTextIpInfo(txtPath):with open(txtPath, "rt") as in_file:text = in_file.read()#最好还是帮用户去除一下空格,防止让用户没发现自己还多打了几个空格,导致ip出错return text.strip()# print("ip地址为:{}".format(text))# print("ip地址长度为:{}".format(len(text)))def outFile(text):with open("outText.txt", "w") as out_file:out_file.write(text)print("ip信息已经成功写入outText.txt中,请查收")# print("请按任意键退出~")# os.system('pause')if __name__ == '__main__':#标准输入专用ipaddress=input()#命令行专用# ipaddress = sys.argv[1]#读取文件专用# ipaddress = getTextIpInfo("ipInfo.txt")if isLegal(ipaddress):# print("合法")url='https://www.ip138.com/iplookup.asp?ip='+ipaddress+'&action=2'getIpResult(url)else:print("检测到您的ip并不合法,请输入合法的ip地址")

7.如何查询集合的差集?

具体需求就是两个集合,里面有一个个的元组,求元组里面的第一个值的差集
A={(‘test1’,3),(‘test2’,4),(‘test3’,4)}
A={(‘test2’,3),(‘test3’,4),(‘test4’,4)}

print("本周新上新的电影:"+str(list((filter(lambda t: t[0] not in {t[0] for t in B}, A)))))  #A-B
print("本周新下榜的电影:"+str(list((filter(lambda t: t[0] not in {t[0] for t in A}, B)))))    B-A输出   ('test1',3)
输出  ('test4',4)解释:
filter()函数是一个高阶函数,它接受一个函数和一个可迭代对象作为参数,然后返回一个迭代器,其中包含了原可迭代对象中满足函数条件的元素。
lambda t: t[0] not in {t[0] for t in y} 是一个匿名函数,它接受一个元组t作为参数,然后判断t的第一个元素是否在集合{t[0] for t in y}中,如果不在则返回True,否则返回False。
{t[0] for t in y} 是一个集合推导式,它遍历y中的每个元组t,然后把t的第一个元素加入到集合中。例如:y = {(1, 2), (7, 8)}; {t[0] for t in y} # 输出{1, 7}
x 是第一个集合,例如:x = {(1, 2), (3, 4), (5, 6)}
list()函数是一个内置函数,它接受一个可迭代对象作为参数,然后把它转换成列表。

每天一个python小技巧相关推荐

  1. 3分钟学会python_3分钟学会一个Python小技巧

    Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...

  2. 每30秒学会一个Python小技巧,GitHub星数4600+

    (图片付费下载自视觉中国) 作者 | xiaoyu,数据爱好者 来源 | Python数据科学(ID:PyDataScience) 很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有 ...

  3. 震惊了!每30秒学会一个Python小技巧,Github星数6000+

    点击上方"Python数据科学",星标公众号 重磅干货,第一时间送达 ☞500g+超全学习资源免费领取,干货来袭! 作者:xiaoyu,数据爱好者 Python数据科学出品 很多学 ...

  4. 30秒就能学会一个Python小技巧?

    作者:wLsq 来源:Python数据科学 大家好,很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决.当然,孰能生巧,当我们代码 ...

  5. python打乱list_超实用!每 30 秒学会一个 Python 小技巧,GitHub 标星 5300!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 很多学习 Python 的朋友在项目实战中会遇到不少功能实现上的问题,有些问 ...

  6. python unique函数_每30秒学会一个Python小技巧,GitHub星数4600+

    作者 | xiaoyu,数据爱好者来源 | Python数据科学(ID:PyDataScience)很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经 ...

  7. 震惊了!每30秒学会一个Python小技巧,Github星数4600+

    点击上方"码农突围",马上关注,每天上午8:50准时推送 真爱,请置顶或星标 作者:xiaoyu,数据爱好者 Python数据科学出品 很多学习Python的朋友在项目实战中会遇到 ...

  8. 30秒就能学会一个Python小技巧你能信

    挑选了10个实用并很有意思的方法分享给大家,其余的感兴趣可以自行学习. 1. List:all_equal功能实现:检验一个列表中的所有元素是否都一样.解读:使用[1:]和[:-1]来比较给定列表的所 ...

  9. 用python画哆啦a梦的身体_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频...

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

  10. python turtle绕原点旋转_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

最新文章

  1. firefox(火狐)使用自动填充记住的用户名密码时,会将密码填充到相同name的文本域解决办法...
  2. 多中心临床大数据平台建设及深度应用
  3. 微软hackathon_Hackathon报告:30小时内您可以编写什么代码? 非常多!
  4. layer弹出层闪退_jQuery使用Layer弹出层插件闪退问题
  5. Windows系统win10系统压缩解压软件推荐
  6. 输出一行数字,中间用空格隔开,最后一个数字没有空格
  7. 三星S4使用体验(Markdown版)
  8. 计算机表格对比功能怎么用,两个excel表格数据对比差异_怎么用vlookup对比两个表格的差异...
  9. 爱可生 mysql监控_actiontech-zabbix-mysql-monitor
  10. 数据挖掘与数据分析项目链家租房数据(二)从性价比看链家推荐是否存在套路。
  11. 计算机专业教室三行诗,当学霸写起三行情书,看完第一个就懵了……
  12. 数据解读:在上海,创业者真的不受待见吗?
  13. Millet谷仓:区块链和电商的完美融合
  14. Adam Harley的卷积神经网络3D视觉化模型
  15. ubuntu 关闭 笔记本键盘背景灯
  16. 2022最新面试题(含css、html、js、es6、Vue)
  17. 五款实用的项目管理软件
  18. 【读书笔记】《数学之美》——一个好方法在形式上总是简单的
  19. 16种常用的数据分析方法-因子分析
  20. Moleskine笔记本使用之感受【个人管理篇】

热门文章

  1. 前端学习之JavaScript echarts库的使用
  2. 【LC中等】1164. 指定日期的产品价格代码优化
  3. 破解无线网络密码教程
  4. kali 安装 蚁剑
  5. BAT纷纷入局,云游戏低调崛起
  6. aircrack-ng暴力破解WIFI密码
  7. 关于有限责任公司的英文缩写
  8. 如何防止某些照片显示在Android的图库或Google相册中
  9. 藏书馆显示服务器繁忙,10-基于数字化校园建设的校园一卡通.doc
  10. UG在钣金设计与制造中的应用