[英]Rename .txt files to first line in file?
我有很多.txt文件,它們的名稱以“ read”開頭,我想對其重命名。 我希望它們以文件中的第一行命名。 我是一個非常糟糕的程序員,但是我已經放手了,現在我被卡住了。
import os
for filename in os.listdir("."):
if filename.startswith("read"):
for line in filename:
os.rename(filename, line)
目前該腳本不執行任何操作,即使它可以正常工作,我也可以確定文件不會保留其擴展名。
任何幫助將不勝感激,謝謝。
您需要打開文件以從中獲取第一行。 for line in filename
中的for line in filename
是一個for循環,它遍歷文件名而不是文件內容,因為您沒有打開實際文件。
另外,for循環旨在遍歷所有文件,並且您只需要第一行。
最后,文本文件中的一行包含行尾字符( '\\n'
),因此您需要將.strip()
刪除。
import os
for filename in os.listdir("."):
if filename.startswith("read"):
with open(filename) as openfile:
firstline = openfile.readline()
os.rename(filename, firstline.strip())
希望能有所幫助
如果將內部循環替換為以下內容,該怎么辦:
if not filename.startswith("read"): continue
base, ext = os.path.splitext(filename)
with open(filename, 'r') as infile:
newname = infile.next().rstrip()
newname += ext
os.rename(filename, newname)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.