检查目录是否存在问题

时间:2019-04-11 09:26:44

标签: python python-3.x

我正在尝试从外部文件(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

也:我看不到为什么第一个空行之后。

1 个答案:

答案 0 :(得分:0)

这两个问题有关。这是因为当您使用readlines()时,您会得到包括换行符在内的整行。因此dir_A的值实际上是C:\A\n

使用strip

temp_setting = temp_file.readlines()[setting_line].strip()