Python 板


LINE

首先我是个超级小白 这是我目前弄出来的东西 f = open('11.txt',encoding = 'utf8') lines = f.readlines() print (lines[2]) 重命名还完全没头绪...之後再说... 首先有几个问题 第1 11.txt只是其中一个档案 一个一个改档案名也太多了 我要如何自动处理多数档案? 第2 我的py档打算和txt放在一起 然後像bat档一样开启後自动执行 有办法吗? 第3 有办法保留执行画面吗? 像bat档的pause 拜托各位帮忙了 感谢 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.41.70.16
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1512145298.A.AC3.html
1F:→ BigBank: 1. os.walk() 2.3.看不太懂 写bat档执行python?12/02 01:02
2是我不太清楚python是如何执行的 所以希望像exe或bat开起就可以使用那样 3是因为开py档闪一下就消失了 和bat档很像 而bat档只要程式码最後加入pause画面就不会消失 ※ 编辑: s4028600 (114.41.70.16), 12/02/2017 01:17:24
2F:→ s4028600: 查了一下os.walk看不懂 把os.walk放到open里面?12/02 01:27
3F:→ stucode: 1. os.walk() 2. os.getcwd() 後 os.walk()12/02 05:02
4F:→ stucode: 3. input() 或者 os.system('pause')12/02 05:03
5F:→ stucode: os.walk() 搭配 for ... in 使用。原 PO 如果没有程式12/02 05:03
6F:→ stucode: 基础的话,建议先找个基本教学看到回圈部分再回来写。12/02 05:03
7F:推 TitanEric: 我都用os.listdir 不过楼上们提到的方法也可以12/02 18:16
抱歉各位 os.walk那些真的看不懂也试不出 但是在找资料找到这个 看可不可行 import glob x=glob.glob('*.txt') print(x) f=open("x",encoding='utf8') lines = f.readlines() print (lines[2]) 虽然成功列出txt档 但是无法输入到open()中 ※ 编辑: s4028600 (114.41.70.16), 12/02/2017 21:57:03
8F:→ stucode: glob 也可以,但它是传回档名 list,一样要搭配 for 回圈12/02 22:28
9F:→ stucode: 来走访每个档案。12/02 22:29
10F:→ danny0838: 可以翻翻官方文件 https://goo.gl/bbK5BC 里面有范例12/02 23:10
11F:→ danny0838: 右上角有搜寻按钮,想知道任何 API 的用途及可用参数都 12/02 23:11
12F:→ danny0838: 可以输进去查。平常不记得网址只要Google搜python doc 12/02 23:11
13F:→ danny0838: 前几项就能找到官网。 12/02 23:11
14F:→ danny0838: 如果英文还是有困难,也可以输入中文关键字Google, 12/02 23:13
15F:→ danny0838: 比如 "python 档案更名"、"python 列出档案" 不过中文 12/02 23:14
16F:→ danny0838: 资料品质就不一定那麽好,另外也要注意python 2和3语法 12/02 23:14
17F:→ danny0838: 不同,有些比较旧的文章是python 2,现在多半用python12/02 23:14
18F:→ danny0838: 3,可能需要改一下程式码才能用。12/02 23:15
19F:→ stucode: 如果不知道现在用的是哪个版本,可以这样确认:12/02 23:18
20F:→ stucode: import sys12/02 23:19
21F:→ stucode: print(sys.version)12/02 23:19
感谢danny的建议 只是我都找过了(除了英文真的看不懂) 其实我这个程式码 也是拿别人的范例东拼西凑实验出来的 又改了下比刚刚好一些 但是那个该死的open真的搞不定 头痛啊 import glob for x in glob.glob('*.txt'): print(x) f=open('x',encoding='utf8') lines = f.readlines() print (lines[2]) ※ 编辑: s4028600 (114.41.70.16), 12/02/2017 23:22:39
22F:→ stucode: open(x, ...) # x 不加括号。加括号的话会变成开启档名为 12/02 23:31
23F:→ stucode: x 的档案。另外 f=open() 跟针对档案处理的每个动作都要 12/02 23:32
24F:→ stucode: 缩排,Python 是以缩排来决定程式码区块的。 12/02 23:32
25F:→ stucode: * 抱歉,我是要说不加引号。 12/02 23:37
26F:→ s4028600: 行了 但是马上出新问题... 只读取最後一个档案的第3行 12/03 00:01
27F:→ s4028600: 只好再试试了 12/03 00:01
只读取最後一个档案的问题先放一边 import glob,os for x in glob.glob('*.txt'): print(x) f=open(x,encoding='utf8') lines = f.readlines() print (lines[2]) os.rename(x,lines[2]) os.system("pause") 谁可以帮我测试一下 数据都是正确的 为什麽会无法更名 明明快完成了...好吐血... ※ 编辑: s4028600 (114.41.70.16), 12/03/2017 00:39:02
28F:→ danny0838: 缩排先弄正确,如果还是出错要贴错误讯息才能判断12/03 01:02
29F:→ danny0838: 一个可能原因是该行有某些字元不允许用於档名12/03 01:02
30F:→ danny0838: 你得想好遇到不能用於档名的字元要怎麽处理 12/03 01:02
31F:→ s4028600: 已经确定有两个原因 一个是档案被占用 一个确实是字符 12/03 04:05
32F:→ s4028600: 字元有点头痛 很难删除 12/03 04:06
33F:→ s4028600: 但是不知道为什麽只读取一个档案很奇怪 是要用for吗? 12/03 04:09
34F:→ s4028600: 试不出编码 12/03 04:09
35F:→ stucode: 档案占用是因为开档读取後没有关闭,两个解决方法: 12/03 10:37
36F:→ stucode: f.close() 或 with open(...) as f:12/03 10:37
37F:→ stucode: 个人比较推荐後者,但前者对你来说可能比较好理解。12/03 10:37
38F:→ stucode: readlines() 读取的字串中包含换行字元 '\n',要用於重新12/03 10:38
39F:→ stucode: 命名之前记得先裁掉(关键字:字串处理),其余部分就是12/03 10:38
40F:→ stucode: danny 大提到的档案系统不接受的字元,这部分依照需求12/03 10:38
41F:→ stucode: 处理方式不同,但一样是做字串处理。只读取最後一个档案12/03 10:38
42F:→ stucode: 的问题,请去 google Python 缩排,中文资料也不少。12/03 10:38
43F:→ djshen: 你知道for loop怎麽用吗?12/03 11:38
44F:→ djshen: 你要不要一步一步来 1读单一档案 2拿到正确档名 3 rename12/03 11:46
45F:→ djshen: 4写成loop形式12/03 11:47
46F:→ djshen: 全部混在一起你自己也不知道哪里出问题12/03 11:47
47F:→ djshen: 没人可以帮你测试 别人又没有你的档案12/03 11:48
48F:→ s4028600: ok 感谢 现在只剩下4写成loop形式 但是写不出解法…12/03 14:48
49F:→ s4028600: 缩排?都可以执行啊?12/03 14:54
import glob,os for x in glob.glob('*.txt'): print(x) #列出所有txt档 f=open(x,encoding='utf8')#打开x lines = f.readlines() #读取档案 print (lines[2]) #列出第3行 y=lines[2].lstrip('<') #同下 z=y.rstrip() #同下 c=z.rstrip('>') #删除不要字元 f.close() #关闭档案 os.rename(x,c) #重新命名 我如果要回圈执行"打开档案"到"重新命名" 直到所有txt档命名完要怎麽写 ※ 编辑: s4028600 (125.230.131.184), 12/03/2017 15:46:49
50F:→ s4028600: 空白键在手机ptt会不见 要整页模式 12/03 15:59
51F:→ youngman77: 你有把f=open之後的code都空四格吗? 12/03 18:15
52F:推 ncueBenson: python 的for 是用空格控制唷 所以你在for的:之後 12/03 20:24
53F:→ ncueBenson: 有加上四格空格的都会在回圈里面 12/03 20:24
空格的没有效果喔 不过突然成功了 虽然有无限回圈的缺点... import glob,os while True: for x in glob.glob('*.txt'): print(x) #列出所有txt档 f=open(x,encoding='utf8')#打开x lines = f.readlines() #读取档案 print (lines[2]) #列出第3行 y=lines[2].lstrip('<') #同下 z=y.rstrip() #同下 c=z.rstrip('>') #删除无法命名字元 f.close() #关闭档案 os.rename(x,c) #重新命名 无限回圈停不下来... ※ 编辑: s4028600 (125.230.131.184), 12/03/2017 21:47:03
54F:→ s4028600: 还好改名後不是txt档12/03 21:47
55F:→ stucode: while True: 拿掉,for 前面不要有空格。 12/03 22:38
虽然不知道为什麽 但是终於运转成功了 import glob,os for x in glob.glob('*.txt'): print(x) #列出所有txt档 txt=open(x,encoding='utf8')#打开x lines = txt.readlines() #读取档案 print (lines[2]) #列出第3行 a=lines[2].strip() #删除 b=a.lstrip('<') #删除从头无法命名字元 c=b.rstrip('>') #删除从尾无法命名字元 d=c.replace(':','') #删除中间 e=d.replace('*','') #同上 f=e.replace('?','') #同上 txt.close() #关闭档案 os.rename(x,f) #重新命名 os.system("pause") 虽然有重复档名无法命名 跑出来的档案要另外加txt的副档名的一些缺点 那个删除字元也相当困难 但是足够我使用了 感谢各位的帮忙 这过程让我知道 会写程式的人真是厉害啊 其他的新手们也可以当作参考 感谢各位了 ※ 编辑: s4028600 (125.230.131.184), 12/03/2017 23:17:15







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灯, 水草

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

TOP