#!/usr/bin/env python3
import sys
import subprocess
file = open('old.txt')
for line in file:
line.strip()
newline = line.replace('jane', 'jdoe')
source = '~'+line
dest = '~'+newline
subprocess.run(['mv', '$(source)', '$(dest)'], shell=True)
file.close()
上面的脚本循环遍历'old.txt'文件中包含的每一行(每一行都是一个路径名),并将单词' jane '替换为单词' jdoe ”。
然后,它调用 subprocess.run()方法,并使用 mv 命令重命名目标“ 目标”文件到源变量“ source ”提供的名称。
'old.txt'文件的内容如下。
/data/jane.doc
/data/jane.csv
顶部的脚本包含在名为 / scripts 的目录中。
/ data 和 / scripts 目录均位于用户的主文件夹目录中。当运行此脚本时,会收到以下消息。
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
在其他情况下,我收到诸如“ mv:无法统计'/data/jane.doc'这样的文件或目录” 或“缺少文件操作数” 的消息
当我按如下所示使用脚本的一些细微变化时,它仍然不起作用:
#!/usr/bin/env python3
import sys
import subprocess
file = open('old.txt')
for line in file:
line.strip()
newline = line.replace('jane', 'jdoe')
source = '~'+line
dest = '~'+newline
mv source dest
file.close()
使它起作用的唯一方法是直接使用命令行界面,如下所示:
mv ~/data/jane.doc ~/data/jdoe.doc