Python 板


LINE

各位版上的大大好 目前我的学习进度到了zipfile这边。 书上的范例是单一个档案的压缩,我就在想那一整个资料夹的压缩要怎麽做? 我就上网Google了一下别人的程式码,却发现了2个没看过,然後也不知道该怎 麽查的用法。 恳请版上大大指导。下方是我查到的程式码。 def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): for file in files: ziph.write(os.path.join(root, file)) if __name__ == '__main__': zipf = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED) zipdir('tmp/', zipf) zipf.close() 问题1 for root, dirs, files in os.walk(path): 常看到的For loop是单一个参数在一个条件中,但这个For loop却是有3个参数 root, dirs, files 请问这是怎麽样子的用法呢?我应该要查询什麽Key words? 问题2 if __name__ == '__main__': 这个我很常看到,但却不懂是什意思。 以上,烦请大德指导。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.98.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1526207176.A.577.html ※ 编辑: yimean (123.195.98.141), 05/13/2018 18:26:50
1F:→ stucode: 1. sequence unpacking。在这里是把 os.walk() 传回的 05/13 19:35
2F:→ stucode: tuple 拆开并分别指派给三个变数。 05/13 19:35
3F:→ stucode: 2. 放在 if __name__ == '__main__': 区块里的程式码只有 05/13 19:35
4F:→ stucode: 在 script 直接被执行时才会执行。 05/13 19:35
5F:→ subi: 问题一你可以执行右边程式 a,b,c = (1,2,3) 05/13 19:43
6F:→ subi: 是相同的意思 05/13 19:43
7F:→ subi: 问题二当程式是直接被执行, __name__ 就会等於 __main__ 05/13 19:44
8F:→ subi: 如果你的程式被 a.py import, __name__就会等於你的程式名字 05/13 19:47
9F:→ yimean: 感谢两位大大的解说,关於第一个我大概明白了,os.walk() 05/13 20:02
10F:→ yimean: 会传回三个变数,就会被分别放入root, dirs, files 05/13 20:03
11F:→ yimean: 第二个 是不是说把if...换成main(), 然後一行打main()是一 05/13 20:05
12F:→ yimean: 样的意思~? 05/13 20:05
13F:→ subi: 不是喔, __name__ 是一个内建变数, 当你直接执行它 05/13 20:21
14F:→ subi: 它被赋予的值是 __main__ 05/13 20:21
15F:→ subi: 假设你的程式名字叫做 abc.py,你用其他程式去import你的程式 05/13 20:22
16F:→ subi: 这时候 __name__ 就会是 abc 05/13 20:23
17F:→ yimean: 所以如果用import的的方式, if以下的程式就不会被执行了, 05/13 20:27
18F:→ yimean: 对吗? 05/13 20:27
19F:→ stucode: 被 import 的话 if 以下不会执行没错,可以试试看: 05/13 20:33
20F:→ stucode: https://repl.it/@csis/pynamedemo 05/13 20:33
21F:→ yimean: 感谢解惑 05/13 20:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP