[問題] 提取txt內文後重命名檔名
首先我是個超級小白
這是我目前弄出來的東西
f = open('11.txt',encoding = 'utf8')
lines = f.readlines()
print (lines[2])
重命名還完全沒頭緒...之後再說...
首先有幾個問題
第1
11.txt只是其中一個檔案
一個一個改檔案名也太多了
我要如何自動處理多數檔案?
第2
我的py檔打算和txt放在一起
然後像bat檔一樣開啟後自動執行
有辦法嗎?
第3
有辦法保留執行畫面嗎?
像bat檔的pause
拜託各位幫忙了
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.41.70.16
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1512145298.A.AC3.html
→
12/02 01:02,
6年前
, 1F
12/02 01:02, 1F
2是我不太清楚python是如何執行的
所以希望像exe或bat開起就可以使用那樣
3是因為開py檔閃一下就消失了
和bat檔很像
而bat檔只要程式碼最後加入pause畫面就不會消失
※ 編輯: s4028600 (114.41.70.16), 12/02/2017 01:17:24
→
12/02 01:27,
6年前
, 2F
12/02 01:27, 2F
→
12/02 05:02,
6年前
, 3F
12/02 05:02, 3F
→
12/02 05:03,
6年前
, 4F
12/02 05:03, 4F
→
12/02 05:03,
6年前
, 5F
12/02 05:03, 5F
→
12/02 05:03,
6年前
, 6F
12/02 05:03, 6F
推
12/02 18:16,
6年前
, 7F
12/02 18:16, 7F
抱歉各位
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
→
12/02 22:28,
6年前
, 8F
12/02 22:28, 8F
→
12/02 22:29,
6年前
, 9F
12/02 22:29, 9F
→
12/02 23:10,
6年前
, 10F
12/02 23:10, 10F
→
12/02 23:11,
6年前
, 11F
12/02 23:11, 11F
→
12/02 23:11,
6年前
, 12F
12/02 23:11, 12F
→
12/02 23:11,
6年前
, 13F
12/02 23:11, 13F
→
12/02 23:13,
6年前
, 14F
12/02 23:13, 14F
→
12/02 23:14,
6年前
, 15F
12/02 23:14, 15F
→
12/02 23:14,
6年前
, 16F
12/02 23:14, 16F
→
12/02 23:14,
6年前
, 17F
12/02 23:14, 17F
→
12/02 23:15,
6年前
, 18F
12/02 23:15, 18F
→
12/02 23:18,
6年前
, 19F
12/02 23:18, 19F
→
12/02 23:19,
6年前
, 20F
12/02 23:19, 20F
→
12/02 23:19,
6年前
, 21F
12/02 23:19, 21F
感謝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
→
12/02 23:31,
6年前
, 22F
12/02 23:31, 22F
→
12/02 23:32,
6年前
, 23F
12/02 23:32, 23F
→
12/02 23:32,
6年前
, 24F
12/02 23:32, 24F
→
12/02 23:37,
6年前
, 25F
12/02 23:37, 25F
→
12/03 00:01,
6年前
, 26F
12/03 00:01, 26F
→
12/03 00:01,
6年前
, 27F
12/03 00:01, 27F
只讀取最後一個檔案的問題先放一邊
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
→
12/03 01:02,
6年前
, 28F
12/03 01:02, 28F
→
12/03 01:02,
6年前
, 29F
12/03 01:02, 29F
→
12/03 01:02,
6年前
, 30F
12/03 01:02, 30F
→
12/03 04:05,
6年前
, 31F
12/03 04:05, 31F
→
12/03 04:06,
6年前
, 32F
12/03 04:06, 32F
→
12/03 04:09,
6年前
, 33F
12/03 04:09, 33F
→
12/03 04:09,
6年前
, 34F
12/03 04:09, 34F
→
12/03 10:37,
6年前
, 35F
12/03 10:37, 35F
→
12/03 10:37,
6年前
, 36F
12/03 10:37, 36F
→
12/03 10:37,
6年前
, 37F
12/03 10:37, 37F
→
12/03 10:38,
6年前
, 38F
12/03 10:38, 38F
→
12/03 10:38,
6年前
, 39F
12/03 10:38, 39F
→
12/03 10:38,
6年前
, 40F
12/03 10:38, 40F
→
12/03 10:38,
6年前
, 41F
12/03 10:38, 41F
→
12/03 10:38,
6年前
, 42F
12/03 10:38, 42F
→
12/03 11:38,
6年前
, 43F
12/03 11:38, 43F
→
12/03 11:46,
6年前
, 44F
12/03 11:46, 44F
→
12/03 11:47,
6年前
, 45F
12/03 11:47, 45F
→
12/03 11:47,
6年前
, 46F
12/03 11:47, 46F
→
12/03 11:48,
6年前
, 47F
12/03 11:48, 47F
→
12/03 14:48,
6年前
, 48F
12/03 14:48, 48F
→
12/03 14:54,
6年前
, 49F
12/03 14:54, 49F
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
→
12/03 15:59,
6年前
, 50F
12/03 15:59, 50F
→
12/03 18:15,
6年前
, 51F
12/03 18:15, 51F
推
12/03 20:24,
6年前
, 52F
12/03 20:24, 52F
→
12/03 20:24,
6年前
, 53F
12/03 20:24, 53F
空格的沒有效果喔
不過突然成功了
雖然有無限迴圈的缺點...
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
→
12/03 21:47,
6年前
, 54F
12/03 21:47, 54F
→
12/03 22:38,
6年前
, 55F
12/03 22:38, 55F
雖然不知道為什麼
但是終於運轉成功了
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