簡體   English   中英

如何在Python中為文件創建擴展名而沒有擴展名

[英]How to create an extension for a file without extension in Python

我有一個包含文件列表的文件夾,沒有擴展名,我需要重命名或為每個文件“ .text”創建擴展名

這是我的代碼,但是有一個小錯誤,例如,第二次我運行該代碼時,再次使用長名稱重新命名了文件,例如

文件名:XXA

第一次運行后:XXA.text

第二個:XXAXXA.text.text

import os
def renamefiles():
  filelist = os.listdir(r"D:\")
  print(filelist)
  os.chdir(r"D:\")
  path = os.getcwd()

for filename in filelist:
   print("Old Name - "+filename)
   (prefix, sep, sffix) = filename.rpartition(".")
   newfile = prefix + filename + '.text'
   os.rename(filename, newfile)
   print("New Name - "+newfile)
   os.chdir(path)     
   rename_files()

你在哪里

newfile = prefix + '.text'

你可以有

if not file_name.contains(".text"):
    newfile = prefix + file_name + '.text'

注意,在哪里有newfile = prefix + file_name + '.text' ,我將其更改為newfile = prefix + '.text' 如果你仔細想想,你不需要filename時,你已經提取的實際文件名prefix

 for file in os.listdir(os.curdir):
     name, ext = os.path.splitext(file)
     os.rename(file, name + ".text")

不要那樣做分區,請使用os.path.splitext

file_name, extension = os.path.splitext(filename)
if not extension:
    newfile = file_name + '.text'
    os.rename(filename, newfile)

如果文件沒有擴展名,則splitext返回'' ,即Falsy 然后可以更改文件擴展名。

import os
def renamefiles():
  filelist = os.listdir(r"D:\")
  print(filelist)
  os.chdir(r"D:\")
  path = os.getcwd()

for filename in filelist:
   print("Old Name - "+filename)
   (prefix, sep, sffix) = filename.rpartition(".")
   newfile = prefix + file_name + '.text'
   if not filename.endswith(".text"):
       os.rename(filename, newfile)
       print("New Name - "+newfile)
       os.chdir(path)     
       rename_files()

您需要檢查文件名是否以.text結尾,然后跳過那些

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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