Python 3.x Python:将文件向上移动一个目录

Python 3.x Python:将文件向上移动一个目录,python-3.x,directory,shutil,pathlib,Python 3.x,Directory,Shutil,Pathlib,下面是一个小的测试例程,它获取文件的路径并将文件向上移动一个目录。我正在使用os和shutil模块,是否有一个模块可以执行此任务?有没有一种更具python风格的方法来实现这个功能 下面的代码在windows上运行,但最好的跨平台解决方案将不胜感激 def up_one_directory(path): """Move file in path up one directory""" head, tail = os.path.split(path) try:

下面是一个小的测试例程,它获取文件的路径并将文件向上移动一个目录。我正在使用os和shutil模块,是否有一个模块可以执行此任务?有没有一种更具python风格的方法来实现这个功能

下面的代码在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

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

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

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


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

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

我的意思是获取一个物理文件并将其从当前目录移动到下一级目录。我认为仍然需要os.path.join()。“os.path.join(path(path).parents[1],path(path).name)”否,请参阅文档:如果目标是一个现有目录,则将src移动到该目录中。我的错误是,它不起作用,并且看到parent\u dir未包含该文件。获取以下错误:“TypeError:\u isdir:路径参数的非法类型”如何调用它?您使用的是什么版本的Python?我对Python3.6没有问题。我认为使用重命名时会出现问题,但我错了——这很管用。
p = Path(path).absolute()
parent_dir = p.parents[1]
p.rename(parent_dir / p.name)