我在一个目录中有约60个子目录。每个文件都包含数千个文件,但是它们都包含一个名为test_all_results.txt
的文件。
我想做的是重命名每个test_all_results.txt
文件,使其现在具有名称:
foldername_all_results.txt
最好的方法是什么?
答案 0 :(得分:1)
您可以这样做:
(相应地更改代码)
import os
# current directory is the target
direct = "."
for path, dirs, files in os.walk(direct):
for f in files:
if os.path.splitext(f)[0] == "test_all_results.txt":
os.rename(os.path.join(path, f), os.path.join(path, "foldername_all_results.txt"))
答案 1 :(得分:1)
使用Python os
接口轻松完成。
假设您当前在主目录中:
import os
#get a list of all sub directories
subdir = os.listdir()
for dir in subdir:
if os.path.isdir(dir): #check if directory
os.chdir(dir) #move to sub directory
os.rename('test_all_results.txt', 'foldername_all_results.txt')
os.chdir('..') #return to main directory
答案 2 :(得分:1)
在Linux中使用python,请执行以下操作:
import os
os.system("mv old_name.txt new_name.txt")
您可以通过循环自动执行,重命名所有文件名。
答案 3 :(得分:1)
有一个答案告诉您使用os.system()
方法,如果您决定从Python调用Linux命令,我建议您改用subprocess
模块。
以下是使用mv
使用两个参数运行subprocess.call
命令的方法:
import subprocess
subprocess.call(["mv", "filename.txt", "new-name.txt"])
信息:这是一篇古老(但相关)的文章,介绍了why it's dangerous to use these methods。
祝你好运。