如何在python中读取其他目录中的文件
我想在Python3中打开并读取不同文件夹中的一些文件。结构如下:如何在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
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