tkFileDialog.askopenfilename在文件名上添加垃圾

时间:2013-01-08 16:34:38

标签: python windows

我有以下代码:

csv_path = tkFileDialog.askdirectory(title="Select csv directory",initialdir=default_initial_dir)
print csv_path

我在不同的计算机上有以下行为:

在一台计算机上,使用Python 2.7.3和Windows XP 32位,我得到以下输出,选择2个文件:

  • {C:/Temp/MMA/Run_A1/V4.0/Geoflow-2b_Run1a_DOY353_aa1hfaa_csv/MMA_OPS_1039899108851.csv}
  • {C:/Temp/MMA/Run_A1/V4.0/Geoflow-2b_Run1a_DOY353_aa1hfaa_csv/MMA_OPS_1039899108852.csv}

在另一台装有Windows 7 64位和Python 2.7.2的计算机上,我得到以下结果:

  • C:/Temp/MMA/Run_A1/V4.0/Geoflow-2b_Run1a_DOY353_aa1hfaa_csv/MMA_OPS_1039899108851.csv
  • C:/Temp/MMA/Run_A1/V4.0/Geoflow-2b_Run1a_DOY353_aa1hfaa_csv/MMA_OPS_1039899108852.csv

正如你所看到的,在XP机器上我在字符串上得到了额外的{},例如,如果我在那台机器上运行以下代码

csv_path = tkFileDialog.askdirectory(title="Select csv directory",initialdir=default_initial_dir).split()
for f in csv_list:
    file = open(f,'r')
    calculate_column_numbers(file)
    process_tm_file(file)
    log("%s\r" % (str(i)+' of '+str(len(csv_list))),False)
    file.close()

我会收到以下错误:

IOError: [Errno 22] invalid mode ('r') or filename: u'{C:/Temp/MMA/Run_A1/V4.0/Geoflow-2b_Run1a_DOY353_aa1hfaa_csv/MMA_OPS_1039899108851.csv}'

由于askdirectory方法为我添加了额外的{}

,因此我们首先看到了我们所拥有的字符串。

为什么我会得到{}?

0 个答案:

没有答案
相关问题