Python:将文件移到一个目录

时间:2018-03-27 11:09:17

标签: python-3.x directory shutil pathlib

下面是一个小型测试例程,它采用文件路径并将文件移到一个目录中。我正在使用os和shutil模块,是否有一个模块可以执行此任务?是否有更多pythonic方式来实现此功能?

以下代码在Windows上运行,但最好的跨平台解决方案将不胜感激。

def up_one_directory(path):
    """Move file in path up one directory"""
    head, tail = os.path.split(path)
    try:
        shutil.move(path, os.path.join(os.path.split(head)[0], tail))
    except Exception as ex:
        # report
        pass

3 个答案:

答案 0 :(得分:2)

从Python 3.4开始,您可以使用pathlib模块:

import shutil
from pathlib import Path


def up_one_dir(path):
    try:
        # from Python 3.6
        parent_dir = Path(path).parents[1]
        # for Python 3.4/3.5, use str to convert the path to string
        # parent_dir = str(Path(path).parents[1])
        shutil.move(path, parent_dir)
    except IndexError:
        # no upper directory
        pass

答案 1 :(得分:1)

这与@ thierry-lathuille的答案相同,但不需要shutil

p = Path(path).absolute()
parent_dir = p.parents[1]
p.rename(parent_dir / p.name)

答案 2 :(得分:0)

使用此选项向上移动一个目录:

filePath = os.getcwd()
os.chdir("..")
folderpath = os.getcwd()
shutil.copy(filePath, folderPath)