A. list對象如何實現重命名(python)
# coding = utf-8
import os
path = "D:\\chunyu"#想要重命名所有文件存放的文件夾
filelist = os.listdir(path) #該文件夾下所有的文件(包括文件夾)
list = []
fileopen = open('D:\chunyu.txt','r')#之後想要重命名成的所有名字的集合,這個名字為除去文件擴展名的文件名
i =0
for file in filelist:
print(file)
for line in fileopen:
line = line.strip('\n')
list.append(line)#讀取txt裡面的所有名字的集合寫入list文件
print(list)
fileopen.close()
for file in filelist: #遍歷所有文件
Olddir=os.path.join(path,file) #原來的文件路徑
if os.path.isdir(Olddir): #如果是文件夾則跳過
continue
filename=os.path.splitext(file)[0] #文件名
filetype=os.path.splitext(file)[1] #文件擴展名
Newdir=os.path.join(path,str(list[i])+filetype)
os.rename(Olddir,Newdir)#重命名
print(Olddir+" has changed as "+Newdir)
i = i+1
B. python怎樣批量修改文件名
os.rename(a,b)是把a重命名為b(名字帶路徑)
os.listdir(path)以列表形式獲取路徑下文件(包括文件夾),os.listdir(「.」)是當前文件夾
然後。。。想怎麼重命名就怎麼寫程序。。。遍歷,(檢查,)修改。。。
如果待重命名的文件和py程序在一個文件夾會很方便,重命名不需要路徑,像os.rename(「1.txt」,「2.txt」)
如果重命名的規則沒法表述,那隻能自己一個個改了。。。
C. python修改文件名問題
filenames=os.listdir('D:\\workspace\\python\\src\\test')
上面的代碼執行之後,filenames中存儲的只是文件名字的列表,不包括路徑!
所以for循環裡面應該是
path = 'D:\\workspace\\python\\src\\test'
os.rename(os.path.join(path, filenames[a]),str(a)+'.bmp')
D. 說說在 Python 中如何復制、移動、改名以及刪除文件或文件夾
要實現復制、移動、改名以及刪除文件或文件夾,需要用到 shutil 模塊,shutil 是 shell util 的簡寫形式,表示 shell 工具。
調用 shutil.(source, destination) 來實現復制文件或文件夾功能,依據 destination 進行區分:
運行結果:
注意: 指定復制的文件夾必須存在,否則會拋出 FileNotFoundError。
shutil 的 tree(source, destination) 方法會復制整個文件夾,包括它所包含的所有文件夾和文件。source
指定源文件夾,destination 指定新的文件夾。source 和 destination 入參都是字元串。該函數會返回新文件夾的路徑。destination 如果不存在,會自動創建。請看下例:
運行結果:
shutil.move(source, destination) 方法會將路徑 source 處的文件移動到路徑 destination,並返回新位置的絕對路徑的字元串。
如果 destination 指向一個文件夾, source 處的文件將移動到 destination 中, 並保持原來的文件名。
運行結果:
注意:
os 模塊中的函數,可以實現刪除一個文件或一個空文件夾。而 shutil 更強大,使用它可以刪除一個非空文件夾!
注意: 因為是永久刪除,所以使用這些函數一定要小心!建議調試程序時, 先注釋掉這些刪除方法,
然後加上 print(), 把要被刪除的文件列印出來,確認後,再執行。
列印出來的文件列表確認無誤後,再執行 os.unlink(filename) 執行刪除操作。
send2trash 模塊會將文件夾或文件發送到計算機的回收站。首先,安裝它:
安裝成功後,調用 send2trash.send2trash 方法,就可以把文件夾或文件發送到計算機的回收站。請看下例:
建議使用 send2trash.send2trash() 函數來刪除文件或文件夾,因為以後還可以從回收站還原。但這樣做,不
會釋放磁碟空間。如果我們還是希望程序釋放磁碟空間, 就要用 os 和 shutil 來刪除文件和
文件夾(記得使用之前提出的 print 技巧)。還有一點需要注意, send2trash() 函數只能將文件送到回收站, 但不能從回收站中恢復文件。
E. 如何用python批量改文件名
importshutil
importos
os.rename("oldname","newname")
shutil.move("oldpos","newpos")
以前兩個命令都能改名,先把文件路徑放到一個列表裡,然後批量調用上面的命令
F. python名字不需要定義怎麼改
1、首先打開並登錄python。
2、其次點擊右上角的個人中心。
3、最後編輯名字即可。
G. 用Python批量改名如何跳過非指定後綴名
#!/usr/bin/envpython3.6
importos
path='D:\Download\'
fs=os.listdir(path)
n=1
forfninfs:
ifnotfn.endswith('.PNG'):
continue
newname=f'{n}'.join(os.path.splitext(fn))
os.rename(f'{path}{fn}',f'{path}{newname}')
print(fn,'----->',newname)
n+=1
or
...
fs=[iforiinos.listdir(path)iffn.endswith('.PNG')]
fori,fninenumerate(fs,1):
newname=f'{i}'.join(os.path.splitext(fn))
os.rename(f'{path}{fn}',f'{path}{newname}')
print(fn,'----->',newname)
H. python 改名程序
importos.path
size=os.path.getsize(filename="1.txt")
#獲取了大小之後你就可以根據你的規則改成其他名字了
I. python如何批量修改指定目錄下的文件名稱
# -*- coding: utf-8 -*-import os, sys,re,shutilfrom nt import chdir
#讀取中文路徑 u''path=u"D:\zhyue93\backup\個人文件\視頻\10、C#\4、C# 語言進階特性"dirs=os.listdir(path)
#排序 1,2,3...10,11dirs=sorted(dirs,key = lambda i:int(re.match(r'(d+)',i).group()))
#將文件改名i=10for dir in dirs:
i+=1
newDir=os.path.join(path,dir)
newFiles=os.listdir(newDir) for file in newFiles: #rename之前要先用chdir()函數進入到目標文件所在的路徑,
#告訴python編譯器要重命名的文件在哪兒,然後才可以修改
#改變當前工作目錄到指定的路徑 chdir(newDir)
os.rename(file,str(i)+"-"+file) print '-----'
#將文件移動到path路徑下print u'移動文件'for dir in dirs:
newDir=os.path.join(path,dir)
newFiles=os.listdir(newDir) for file in newFiles:
oldFilePath=os.path.join(newDir,file)
newFilePath=os.path.join(path,file)
shutil.move(oldFilePath, newFilePath)#移動文件到目標路徑
J. 怎麼用python批量修改文件名
基本程序
1
引入os模塊(python中操作文件的模塊)。
2
定義修改名稱的函數rename。
在rename函數中定義一個儲存路徑的變數path,並將要修改文件名的文件夾的路徑賦值給該變數。
3
繼續向函數中添加功能代碼
4
最後調用這個rename函數這個腳本就寫完了。執行這個文件,就會將文件夾下所有的文件改成 這里是你要改的文件名.後綴名 這樣的格式,顯然我們一般情況下不是需要這樣的效果的。下面我列出了一些常用的改文件名的方法。
5
列出代碼,便於復制
import os;
def rename():
path="這里替換為你的文件夾的路徑";
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
Newdir=os.path.join(path,"這里是你要改的文件名"+filetype);#新的文件路徑
os.rename(Olddir,Newdir);#重命名
rename();
END
添加改名規律
1
(1).序號依次遞增型
import os;
def rename():
count=0;
path='C:\\Users\\admin\\Desktop\\test';
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
Newdir=os.path.join(path,str(count)+filetype);#新的文件路徑
os.rename(Olddir,Newdir);#重命名
count+=1;
rename();
2
(2).批量取分隔符前面/後面的名稱
import os;
def rename():
path='C:\\Users\\admin\\Desktop\\test';
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
if filename.find('---')>=0:#如果文件名中含有---
Newdir=os.path.join(direc,filename.split('---')[0]+filetype);
#取---前面的字元,若需要取後面的字元則使用filename.split('---')[1]
if not os.path.isfile(Newdir):
os.rename(Olddir,Newdir);
rename();