重命名多个子目录中的单个.txt文件

时间:2019-04-30 14:14:08

标签: python python-3.x

我在一个目录中有约60个子目录。每个文件都包含数千个文件,但是它们都包含一个名为test_all_results.txt的文件。

我想做的是重命名每个test_all_results.txt文件,使其现在具有名称:

foldername_all_results.txt

最好的方法是什么?

4 个答案:

答案 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

祝你好运。