【问题标题】:How to rename list of files to new arbitrary list如何将文件列表重命名为新的任意列表
【发布时间】:2018-01-13 00:04:23
【问题描述】:

我有一个文件列表:Wav16.ogg、Wav17.ogg ... Wav76.ogg
我想转换为:a65.ogg, b72.ogg ... b32.ogg

这是我目前所拥有的:

import os
import numpy as np

OldContent = [i.strip().split() for i in open("OTWGYNmp3/Wav#.txt").readlines()]
oldName    = np.asarray(OldContent)

NewContent = [i.strip().split() for i in open("OTWGYNmp3/Key#.txt").readlines()]
newName    = np.asarray(NewContent)

这是我想要实现但不确定如何前进的要点:

for i in len(newName):
    os.rename(oldName[i], newName[i]) 

我环顾四周,看到了不同的答案,但它们都涉及通过某种因素更改名称,而不是用任意名称替换:Rename multiple files in a directory in Python

【问题讨论】:

  • 显示您尝试过的内容。 SO 不是免费的编程服务。
  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask

标签: python bash rename file-rename


【解决方案1】:

给定名为 orignew 的文件中的文件名:

readarray -t orig < orig
readarray -t new < new
for((i=0; i < ${#orig[*]}; i++))
do
  echo mv -- "${orig[i]}" "${new[i]}"
done

如果看起来没问题,请删除echo

给定样本输入:

file1
file2
file3

filea
fileb
filec

示例输出为:

mv file1 filea
mv file2 fileb
mv file3 filec

【讨论】:

  • 嗨,杰夫,这看起来像 bash。我是新手,但你所说的 orig 是指 Wav*.ogg 吗?我不确定什么是新的。我尝试使用 python 创建两个数组,包含原始文件和新的 .txt 文件。这相似吗?
  • 您说“我制作了 2 个包含旧名称和新名称的文本文件”;我称它们为“原始”和“新”,但不管你怎么称呼它们。
  • 我使用的是操作系统,而 readarray 不是 bash 命令。我试过 read -t Wav#.txt
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 2019-12-17
    • 1970-01-01
    • 2011-02-23
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    相关资源
    最近更新 更多