1

次のコードがあります。

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

そして、さまざまなコンピューターで次の動作をしています。

1 台のコンピューターで、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 メソッドが余分な {} を追加しているため、最初に持っている文字列を見ると完全に推測されます

{} が表示されるのはなぜですか?

4

0 に答える 0