首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何获得文件的完整路径以移动它?

Python:如何获得文件的完整路径以移动它?
EN

Stack Overflow用户
提问于 2018-10-05 15:41:44
回答 2查看 103关注 0票数 3

我有文件在拉链里。我用Zip-7解压缩它们,这样它们就在带有zip文件名的文件夹中。

这些文件夹中的每一个都有我想要的.otf或.ttf (有些文件夹两者都有),并移到另一个文件夹中。

我尝试过一些获取文件的完整路径的方法,但是每个方法都忽略了文件实际所在的文件夹。

以下是我的最新尝试:

代码语言:javascript
复制
import os
import shutil
from pathlib import Path

result = []

for root, dirs, files in os.walk("."):
    for d in dirs:
       continue
    for f in files:
        if f.endswith(".otf"):
            print(f)
            p = Path(f).absolute()
            parent_dir = p.parents[1]
            p.rename(parent_dir / p.name)
        elif f.endswith(".ttf"):
            print(f)
            p = Path(f).absolute()
            parent_dir = p.parents[1]
            p.rename(parent_dir / p.name)      
        else:
            continue

其他尝试:

代码语言:javascript
复制
# parent_dir = Path(f).parents[1]
# shutil.move(f, parent_dir)

#print("OTF: " + f)
    #     fn = f
    #     f = f[:-4]
    #     f += '\\'
    #     f += fn
    #     result.append(os.path.realpath(f))

#os.path.relpath(os.path.join(root, f), "."))

我知道这很简单,但我就是搞不懂。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-05 15:47:26

您应该使用路径名root连接文件名。

代码语言:javascript
复制
for root, dirs, files in os.walk("."):
    for d in dirs:
       continue
    for f in files:
        if f.endswith(".otf"):
            p = Path(os.path.join(root, f)).absolute()
            parent_dir = p.parents[1]
            p.rename(parent_dir / p.name)
        elif f.endswith(".ttf"):
            p = Path(os.path.join(root, f)).absolute()
            parent_dir = p.parents[1]
            p.rename(parent_dir / p.name)      
        else:
            continue
票数 2
EN

Stack Overflow用户

发布于 2018-10-05 16:01:46

代码语言:javascript
复制
 for root, dirs, files in os.walk(".")
     for d in dirs:
             continue
     for f in files:
             print(os.path.abspath(f))

您可以使用os.path.abspath()获取完整文件的路径,还需要对特定文件类型进行筛选。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52669172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档