我正在尝试从外部文件(config.txt)加载配置。该文件包含有关驱动器上目录的信息。我编写了一种读取config.txt的一行并返回其值的方法。第二种方法检查目录的存在。即使给定目录存在,后一种方法的第一次调用始终会导致 False 。
我尝试了不同的目录,甚至两行都使用了相同的目录。对于第一个电话,我总是得到“ 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
也:我看不到为什么第一个空行之后。
答案 0 :(得分:0)
这两个问题有关。这是因为当您使用readlines()
时,您会得到包括换行符在内的整行。因此dir_A
的值实际上是C:\A\n
。
使用strip
:
temp_setting = temp_file.readlines()[setting_line].strip()