如何在python中读取其他目录中的文件

如何在python中读取其他目录中的文件,python,Python,我想在Python3中打开并读取不同文件夹中的一些文件。结构如下: snapshot - folder1 - file 1 - file 2 - folder2 - file 3 - file 4 我尝试使用pathlib,但它显示为“\”而不是“/”。还有别的办法吗?我想要的理想结果是: "./snapshot/folder1/file 1" "./snapshot/folder1/file 2" "./snapshot/folder1

我想在Python3中打开并读取不同文件夹中的一些文件。结构如下:

snapshot
  - folder1
      - file 1
      - file 2
  - folder2
      - file 3
      - file 4
我尝试使用
pathlib
,但它显示为“\”而不是“/”。还有别的办法吗?我想要的理想结果是:

"./snapshot/folder1/file 1"
"./snapshot/folder1/file 2"
"./snapshot/folder1/file 3"
"./snapshot/folder1/file 4"
这是我的代码:

folders = Path('Snapshot/')**strong text**
for folder in folders.iterdir():
    files = Path(f'./{folder}/')
    for file in files.iterdir():      
你为什么不:

from pathlib import Path
folders = Path('Snapshot/')
for folder in folders.iterdir():
    files = Path(folder)
    for file in files.iterdir():  
不需要字符串扩展

我也不知道你说的“\”是什么意思。你为什么在乎?我以为你想读文件的内容

也许您会在最后一个for循环之后显示这些行? 例如:

你在windows上运行吗?
那么,您的路径名可能是“normalized”(使用默认的目录分隔符“\”)

您说您的代码显示了“\”,但您迄今为止共享的代码根本没有显示任何内容。请提供。
文件3
文件4
不在
文件夹1
中。那么,是什么逻辑决定了这种转换呢?
Path
来自哪里?Path来自pathlib(如问题中所述)。我只是从问题中复制了片段并修复了它,但你是对的。最好显示导入内容,以避免任何歧义。我编辑了我的答案。完整示例现在递归到目录中,并跳过第一级中的文件。在第二级中,它通过读取文件内容并计算长度来打开文件(只是为了表明open()是有效的)。我还避免使用变量名文件,因为它也是python关键字
from pathlib import Path

folders = Path('Snapshot/')
for folder in folders.iterdir():
    if not folder.is_dir():
        continue
    entries = Path(folder)
    for entry in entries.iterdir():
        if not entry.is_file():
            continue
        print("fname", str(entry))
        with open(entry, "rb") as fin:
            data = fin.read()
        print(len(data), "bytes")
import os

dirpath = 'snapshot'
for root, dirnames, fnames in os.walk(dirpath):
    for fname in fnames:
        print(os.path.join('.', root, fname))
import os

for folder in os.listdir('snapshot'):

    folder_path = os.path.join('snapshot', folder)

    for file in os.listdir(folder_path):

        # do stuff