在 Python 3 中尝试打开文件进行读取时出现 FileNotFoundError
Getting FileNotFoundError when trying to open a file for reading in Python 3
我正在使用 OS 模块打开文件进行读取,但出现 FileNotFoundError。
我正在尝试
- 在给定的子目录中查找包含单词 "mda"
的所有文件
- 对于这些文件中的每一个,获取文件名中两个“_”之后的字符串(表示称为 SIC 的特定代码)
- 打开该文件进行阅读
- 稍后将写入主文件以进行一些 Mapreduce 处理
当我尝试打开时,出现以下错误:
File "parse_mda_SIC.py", line 16, in <module>
f = open(file, 'r')
FileNotFoundError: [Errno 2] No such file or directory:
'mda_3357_2017-03-08_1000230_000143774917004005__3357.txt'
我怀疑问题出在 "file" 变量或者它是一个目录下的事实,但我很困惑为什么当我使用 OS 来解决那个较低的目录时会发生这种情况.
我有以下代码:
working_dir = "data/"
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
f = open(file, 'r')
我希望能够毫无问题地打开文件,然后根据数据创建我的列表。感谢您的帮助。
这应该适合你。您需要附加该目录,因为它仅将其视为代码顶部的文件名,并且只会在您的代码所在的目录中查找该文件名。
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
f = open(os.path.join(working_dir, file), 'r')
此外,使用 with
的上下文管理器打开文件也是一个好习惯,因为它会在不再需要时处理关闭文件:
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
with open(os.path.join(working_dir, file), 'r') as f:
# do stuff with f here
您需要附加目录,如下所示:
f = open(os.path.join(working_dir, file, 'r'))
我正在使用 OS 模块打开文件进行读取,但出现 FileNotFoundError。
我正在尝试
- 在给定的子目录中查找包含单词 "mda" 的所有文件
- 对于这些文件中的每一个,获取文件名中两个“_”之后的字符串(表示称为 SIC 的特定代码)
- 打开该文件进行阅读
- 稍后将写入主文件以进行一些 Mapreduce 处理
当我尝试打开时,出现以下错误:
File "parse_mda_SIC.py", line 16, in <module>
f = open(file, 'r')
FileNotFoundError: [Errno 2] No such file or directory:
'mda_3357_2017-03-08_1000230_000143774917004005__3357.txt'
我怀疑问题出在 "file" 变量或者它是一个目录下的事实,但我很困惑为什么当我使用 OS 来解决那个较低的目录时会发生这种情况.
我有以下代码:
working_dir = "data/"
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
f = open(file, 'r')
我希望能够毫无问题地打开文件,然后根据数据创建我的列表。感谢您的帮助。
这应该适合你。您需要附加该目录,因为它仅将其视为代码顶部的文件名,并且只会在您的代码所在的目录中查找该文件名。
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
f = open(os.path.join(working_dir, file), 'r')
此外,使用 with
的上下文管理器打开文件也是一个好习惯,因为它会在不再需要时处理关闭文件:
for file in os.listdir(working_dir):
if (file.find("mda") != -1):
SIC = re.findall("__(\d+)", file)
with open(os.path.join(working_dir, file), 'r') as f:
# do stuff with f here
您需要附加目录,如下所示:
f = open(os.path.join(working_dir, file, 'r'))