将文件从未知文件夹移动到其他文件夹

时间:2018-04-06 11:24:27

标签: python python-3.x python-2.7

我正在提取.tar.gz文件里面有文件夹(文件有很多扩展名)。我想将文件夹的所有.txt文件移动到另一个文件夹,但我不知道文件夹的名称。

.txt文件位置---> my_path/extracted/?unknown_name_folder?/file.txt

我想做 - > my_path/extracted/file.txt

我的代码:

os.mkdir('extracted')
t = tarfile.open('xxx.tar.gz', 'r')
for member in t.getmembers():
      if ".txt" in member.name:
            t.extract(member, 'extracted')
      ###

1 个答案:

答案 0 :(得分:4)

我会首先尝试提取tar文件(See here

import tarfile
tar = tarfile.open("xxx.tar.gz")
tar.extractall()
tar.close()

然后使用os.walk()方法(See here

import os
for root, dirs, files in os.walk('.\\xxx\\'):
    txt_files = [path for path in files if path[:-4] == '.txt']

或者使用glob包来收集@alper在下面的评论中建议的txt文件:

txt_files = glob.glob('./**/*.txt', recursive=True)

这是未经测试的,但应该让你非常接近

显然,一旦获得文本文件列表就移动它们

new_path = ".\\extracted\\"
for path in txt_files:
    name = path[path.rfind('\\'):]
    os.rename(path, new_path + name)