关于python:检查目录是否存在的问题

Problems checking existence of directory

本问题已经有最佳答案,请猛点这里访问。

我正在尝试从外部文件(config.txt)加载配置。该文件包含有关我的驱动器上目录的信息。我编写了一个方法来读取config.txt的一行并返回其值。第二个方法检查目录的存在。后一个方法的第一个调用总是会导致一个错误,即使给定的目录存在。

我尝试了不同的目录,甚至两行中的同一个目录。第一次打电话,我总是听到"假"。第二次呼叫的结果是正确的答案。如果使用任何目录从终端调用该方法,我会得到正确的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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如下所示:

1
2
C:\A
C:\B

两个目录都存在并且都可以访问。

结果总是:

1
2
3
4
5
dir A: C:\A

dir NOT found
dir B: C:\B
dir found

还有:我不明白为什么第一条线后面有空行。


这两个问题是相关的。这是因为当你使用readlines()时,你得到了包括换行符在内的整条线;所以dir_A的值实际上是C:\A
的值。

使用strip

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