我期望創建一個目錄,然後在其中打開一個文件以供寫入,當我在下面執行我的代碼時Python的2.6.6,創建目錄然後在Python中打開文件時出現錯誤,但是如果目錄已經存在則沒有錯誤
import subprocess
def create_output_dir(work_dir):
output_dir = '/work/m/maxwell9/some_name5/'
subprocess.Popen(['mkdir', output_dir])
return output_dir
if __name__ == '__main__':
work_dir = '/work/m/maxwell9/'
output_dir = create_output_dir(work_dir)
#output_dir = '/work/m/maxwell9/some_name5/'
filename = output_dir + 'bt.sh'
with open(filename, 'w') as script:
print('there')
,而是我得到的錯誤,
Traceback (most recent call last):
File "slurm_test.py", line 13, in <module>
with open(filename, 'w') as script:
IOError: [Errno 2] No such file or directory: '/work/m/maxwell9/some_name5/bt.sh'
如果我運行該腳本,然後我可以看到目錄中創建。如果我再取消註釋行,
#output_dir = '/work/m/maxwell9/some_name5/'
和註釋行,
output_dir = create_output_dir(work_dir)
則該文件輸出的罰款。所以有一些關於創建文件夾,然後寫入到導致錯誤的相同腳本中。
你可能最好使用'嘗試:os.makedirs(WORK_DIR);除了OSError:通過'而不是'os.path.isdir'(避免另一個小的競態條件)。 – mgilson
@mgilson好建議,編輯! – Alec