我有一个类似的问题:我想批量重命名文件一样:嵌入文件路径名
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个文件夹较深)? –