python IOError [Errno 13] 字符串与 Tk

python IOError [Errno 13] string vs Tk

当我使用 Tk.askopenfiledialogbox 并选择我想要的目录,然后使用 open(files, "r") 打开每个文件时,它工作正常。但是,当我将路径硬编码为字符串时,我得到拒绝访问 IOError [Errno13]。这是我的代码:

   data_path = "C:\Data\DataSubDir"  
   datadir = [x[0] for x in os.walk(data_path)]
   for dataset in datadir[1:]:
        for files in glob.glob(dataset):
             with open(files,'r') as dest_f:
                  data_iter = c.reader(dest_f, 
                                       delimiter = ',', 
                                       quotechar = '"')
                   data = [data for data in data_iter]
                   csv = np.asarray(data, dtype = None)

我想在不更改权限的情况下解决这个问题。另外,如果有人也可以解释为什么通过 Tk 对话框选择文件可以摆脱权限问题,那将是很棒的(并提供解决方案!)。

谢谢。

要么转义你的反斜杠

data_path = "C:\Data\DataSubDir"

或使用原始字符串:

data_path = r"C:\Data\DataSubDir"  

对于 Tk 对话框,字符串格式正确。