次のコードがあります。
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 メソッドが余分な {} を追加しているため、最初に持っている文字列を見ると完全に推測されます
{} が表示されるのはなぜですか?