Python - 打开带空格的文件时遇到问题

Python - Having trouble opening a file with spaces

所以我试图打开 "subnet folder" 文件夹中的多个文件。但是,它不允许我打开其中包含空格的特定文件

for filename in os.listdir(pathlib.Path.cwd() / "Subnet folder"):
    f = open(filename, 'r', encoding="ISO-8859-1")

这是我收到的错误:

FileNotFoundError: [Errno 2] No such file or directory: '10.181.136.0  24.csv'

该文件肯定存在,所以我不确定问题出在哪里。

感谢任何帮助。谢谢

看来你需要在文件名前加上Subnet Folder。你可以使用 os

import os
for filename in os.listdir(pathlib.Path.cwd() / "Subnet folder"):
    f = open(os.path.join("Subnet folder", filename), 'r', encoding="ISO-8859-1")

filename 最终是相对于你的 CWD,所以你想做一些像

folder = pathlib.Path.cwd() / "Subnet folder"
for filename in os.listdir(folder):
    f = open(folder / filename, 'r', encoding="ISO-8859-1")

空间不是这里的问题;相对路径是。

os.listdir 只产生文件名,而不是相对于当前工作目录的路径。如果要打开文件,需要使用相对路径。

d = pathlib.Path.cwd() / "Subnet folder"
for filename in os.listdir(d):
    f = open(d / filename, 'r', encoding="ISO-8859-1")

请注意,您实际上不需要在此处使用 cwd,因为 listdiropen 已经根据您当前的工作目录解释了相对路径。

for filename in os.listdir("Subnet folder"):
    f = open(os.path.join("Subnet folder", filename), ...)

或者,先更改您的工作目录。然后,文件名本身将是 open.

的有效相对路径
os.chdir("Subnet folder)
for filename in os.listdir():
    f = open(filename, ...)

最后,您可以完全避免 os.listdir,因为如果 Path 对象引用目录,您可以直接遍历其内容。此迭代产生一系列 Path 实例,每个实例都有一个 open 方法,可用于代替普通的 open 函数。

for filename in (pathlib.Path.cwd() / "Subnet Folder").iterdir():
    f = filename.open(...)