簡體   English   中英

將.txt文件重命名為文件的第一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM