python - 检查目录是否存在的问题
问题描述
我正在尝试从外部文件 (config.txt) 加载配置。该文件包含有关我的驱动器上的目录的信息。我编写了一种读取 config.txt 行并返回其值的方法。第二种方法检查目录的存在。后一种方法的第一次调用总是导致False,即使给定目录存在。
我尝试了不同的目录,甚至两行中的相同目录。对于第一个电话,我总是得到一个“假”。第二次调用导致正确答案。如果从带有任何目录的终端调用该方法,我会得到正确的结果。
import os
def _load_config(setting_line, setting_print):
temp_file = open("config.txt", "r")
temp_setting = temp_file.readlines()[setting_line]
temp_file.close()
print(setting_print,temp_setting)
return temp_setting
def _Check_Folder_Exists(temp_path):
if os.path.exists(temp_path):
print("dir found")
else:
print("dir NOT found")
dir_A = _load_config(0, "dir A:")
_Check_Folder_Exists(dir_A)
dir_B = _load_config(1, "dir B:")
_Check_Folder_Exists(dir_B)
config.txt 看起来像:
C:\A
C:\B
这两个目录都存在并且可以访问。
结果总是:
dir A: C:\A
dir NOT found
dir B: C:\B
dir found
另外:我不明白为什么在第一个之后有一个空行。
解决方案
这两个问题是相关的。这是因为当你使用 时readlines()
,你会得到包括换行符在内的整行;所以 的值dir_A
实际上是C:\A\n
。
使用strip
:
temp_setting = temp_file.readlines()[setting_line].strip()
推荐阅读
- driver - 在奇异容器中安装驱动程序后,nvidia-smi 无法正常工作
- android-sqlite - 创建表后如何在 SQLite 数据库中设置主键?
- android - 意图服务阻止 UI 并导致 ANR
- node.js - 我如何在 ejs 中遍历这个引用的数据(标记的剧集)
- r - 将 reactive() 元素传递到用户定义的函数中,该函数会生成一个 shinyApp()
- java - 如何使用此 uri 上传到 firebase 存储?
- python-3.x - 重新加载“torch.nn.functioanl”时出现一些错误?
- mysql - 为创建数据库设置默认排序规则
- c - IVpnManagementAgent 的 IID 在哪里定义
- node.js - 为什么我的 Mongoose 查找查询未返回预期数据?