我有一個類似的問題:我想批量重命名文件一樣:嵌入文件路徑名
c:>/folder/path_a/to/my_first_file.txt
c:>/folder/path_b/to/my_2_nd_file.txt
c:>/folder/path_c/to/my_bla_bla.txt
c:>/folder/path_d/to/pippo.txt
c:>/folder/path_d/to/pluto.txt
c:>/folder/path_d/to/my_bla_bla.txt
,我想他們會重命名爲:
c:>/folder/path_a-to_my_first_file.txt
c:>/folder/path_b-to-my_2_nd_file.txt
c:>/folder/path_c-to-my_bla_bla.txt
c:>/folder/path_d-to-pippo.txt
c:>/folder/path_d-to-pluto.txt
c:>/folder/path_d-to-my_bla_bla.txt
「嵌入」的一部分到文件名的路徑
有人可以幫助我(我使用Windows)嗎?
找到this,但我不知道怎麼跟PS「搶只有subdirectorys名」
編輯: Python的我都做sometng像這樣(對不起,如果代碼不工作,但我在這裏沒有蟒蛇):
for dirname, _, fnames in os.walk('.'):
first=dirname.replace('\','-')
for fname in fnames:
name="{}-{}".format(first,fname)
os.rename("{}\{}".format(dirname,fname),"{}"name)
for for dirname,_,fname in os.walk('.'):
os.remove(dirname)
=================更新===================
由於處理powershell成爲一個耗時的問題,我把我的數據放在USB驅動器上,並在另一臺Mac上使用下面的python腳本海因做的工作:(腳本也改變文件名以去除在flenames enbedded一個以前的「.C」 extention)
from os import rename, walk, chdir
EXT = '.c'
PATH = 'folder'
chdir(PATH)
for cart, _, files in walk("."):
for i in files:
if os.path.isfile("{}/{}".format(cart,i)):
if EXT in i:
nn = i.replace(EXT,'') #removes inner extension
rename('{}/{}'.format(cart,i),'{}-{}'.format(cart,nn)) #changes the path
你是做什麼關於他們在那裏的文件夾?你如何確定根源在哪裏?對於一些字符串操作,這應該相當容易。你有什麼嘗試? – Matt
我的意圖是刪除所有子文件夾,並保留在./文件夾/中。我在Windows的命令行上不太方便(不幸的是我不在一臺可以安裝python的特權機器上)我知道這是一個字符串操作的問題,但我對如何「正確」 PS – DDS
上的所有文件夾是否在相同的嵌套級別(即3個文件夾較深)? –