【问题标题】:Getting all files under a folder and subfolders in a recursive manner, without the path of the subfolders itself [closed]以递归方式获取文件夹和子文件夹下的所有文件,没有子文件夹本身的路径[关闭]
【发布时间】:2021-10-19 18:00:05
【问题描述】:

我想以递归方式列出文件夹及其所有子文件夹下文件的所有完整路径。有没有办法做到这一点?好像文件分2级的话,代码可以这样写,

import os


folderPATH = r'C:\Users\Arman\Desktop\Cosmology\Articles'
filePATHS = [x[2] for x in os.walk(folderPATH)]

for i in filePATHS:
    for j in i:
        print(j)

打印

Astrophysical Constants And Parameters.pdf
desktop.ini
Physics Latex Manuel.pdf
Spactimes.pdf
A parametric reconstruction of the cosmological jerk from diverse observational data.pdf
A Thousand Problems in Cosmology Horizons.pdf
An Almost Isotropic CM Temperature Does Not Imply An Almost Isotropic Universe.pdf
Big Bang Cosmology - Review.pdf
desktop.ini
Expanding Confusion common misconceptions of cosmological horizons and the superluminal expansion of the universe.pdf
Hubble Radius.pdf
Is the Universe homogeneous.pdf
LCDM and Mond.pdf
Near galaxy clusters.pdf
The Cosmological Constant and Dark Energy.pdf
The mass of the Milky Way from satellite dynamic.pdf
The Status of Cosmic Topology after Planck Data.pdf
An upper limit to the central density of dark matter haloes from consistency with the presence of massive central black holes.pdf
Dark Matter - Review.pdf
Dark Matter Accretion into Supermassive Black Holes.pdf
desktop.ini
Andrew H. Jaffe - Cosmology - Imperial College Lecture Notes - Thermodynamics and Particle Physics.pdf
Big Bang Nucleosynthesis.pdf
Claus Grupen - Astroparticle Physics - The Early Universe.pdf
Daniel Baumann - Cosmology - Mathematical Tripos III - Thermal History.pdf
desktop.ini
James Rich - Fundamentals of Cosmology - The Thermal History of the Universe.pdf
Lars Bergström, Ariel Goobar - Cosmology and Particle Astrophysics -  Thermodynamics in the Early Universe.pdf  
Steven Weinberg - Cosmology - The Early Universe.pdf
Andrei Linde - On the problem of initial conditions for inflation.pdf
...

我想要一个产生相同结果的函数但具有递归逻辑和完整路径。这样对于n 嵌套文件夹,我可以找到路径。我需要这样的东西,

import os

def get_all_filePATHs(folderPATH):
    ...
    return get_all_filePATHs()

folderPATH = r'C:\Users\Arman\Desktop\Cosmology\Articles'
print(get_all_filePATHs(folderPATH))

请注意,我只对文件的完整路径感兴趣,而不是子文件夹的路径,正如您从上面的示例中看到的那样。

【问题讨论】:

  • os.walk() 递归到所有子文件夹。

标签: python file path


【解决方案1】:

os.walk() 递归到所有子目录。每次迭代中返回的第一个元素是目录的路径,您可以将其与文件名连接起来以获取文件的完整路径。

def get_all_filePaths(folderPath):
    result = []
    for dirpath, dirnames, filenames in os.walk(folderPath):
        result.extend([os.path.join(dirpath, filename) for filename in filenames])
    return result

【讨论】:

  • 谢谢。这很好用
【解决方案2】:

使用Pathlib

from pathlib import Path
# set main directory
folderPATH=Path('Оплата')
# loop over subdirs and files
print([Path(folderPATH.resolve().parent, the_path) for the_path in folderPATH.rglob("*")])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    相关资源
    最近更新 更多