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/m.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燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP