gpt4 book ai didi

python - os.rename() 文件到文件夹名称的一部分

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:21 26 4
gpt4 key购买 nike

我有多个文件夹,看起来像 folder.0folder.1。在每个文件夹中有一个文件('junk'),我想将其复制并重命名为 .0.1 的一部分当前所在的文件夹名称。
这是我正在尝试做的事情:

inDirec = '/foobar'
outDirec = '/complete/foobar'


for root, dirs,files in os.walk(inDirec):
for file in files:
if file =='junk'
d = os.path.split(root)[1]
filename, iterator = os.path.splitext(d) # folder no. captured
os.rename(file, iterator+file) # change name to include folder no.
fullpath = os.path.join(root,file)
shutil.copy(fullpath,outDirec)

返回:

os.rename(file,iterator+file)
OSError: [Errno 2] No such file or directory

我什至不确定我是否应该使用 os.rename。我只想取出 files == 'junk' 并将它们复制到一个目录,但它们都具有完全相同的名称。所以我真的只需要重命名它们,以便它们可以存在于同一目录中。有帮助吗?

更新

    for root, dirs,files in os.walk(inDirec):
for file in files:
if file =='junk'
d = os.path.split(root)[1]
filename, iterator = os.path.splitext(d) # folder no. captured
it = iterator[-1] # iterator began with a '.'

shutil.copy(os.path.join(root,file),os.path.join(outDirec,it+file))

最佳答案

您的问题是您的程序在启动时使用工作目录进行重命名操作。您需要提供完整的相对或绝对路径作为 os.rename() 的参数。

替换:

os.rename(file, iterator+file)
fullpath = os.path.join(root,file)
shutil.copy(fullpath,outDirec)

随着(如果你想移动):

os.rename(os.path.join(root, file), os.path.join(outDirec, iterator+file))

或者用(如果你想复制):

shutil.copy(os.path.join(root, file), os.path.join(outDirec, iterator+file))

注意:目标目录应该已经存在,否则您将需要代码来创建它。

关于python - os.rename() 文件到文件夹名称的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com