[英]Letting user choose a directory to save a file, if directory doesn't exist how to ask for a directory again
我正在編寫一個腳本來保存文件,並提供保存此文件的位置選項。 現在,如果輸入的目錄不存在,它會破壞代碼並打印目錄不存在的Traceback。 而不是破壞代碼,我希望有一個解決方案告訴用戶他們選擇的目錄不存在,並再次詢問保存文件的位置。 我不想讓這個腳本創建一個新目錄。 這是我的代碼:
myDir = input('Where do you want to write the file?')
myPath = os.path.join(myDir, 'foobar.txt')
try:
f = open(myPath, 'w')
except not os.path.exists(myDir):
print ('That directory or file does not exist, please try again.')
myPath = os.path.join(myDir, 'foobar.txt')
f.seek(0)
f.write(data)
f.close()
這將讓你開始但是我會注意到我認為你需要調整輸入語句,這樣用戶就不必輸入引號來獲得無效的語法錯誤
import os
myDir = input("Where do you want to write the file ")
while not os.path.exists(myDir):
print 'invalid path'
myDir = input("Where do you want to write the file ")
else:
print 'hello'
我不知道你的編程背景是什么 - 在找到Python之前我是SAS,而且一些結構很難思考,因為Python中的方法非常簡單,沒有goto或類似的聲明,但我仍然在嘗試添加一個goto方法,然后有人提醒我,雖然不是更簡單,更容易閱讀等等。
祝好運
我應該補充一點,你真的不需要我把它放在那里的else語句來測試/驗證我的代碼是否可行。 如果你希望經常這樣做,那么你應該把它放在一個函數中
def verify_path(some_path_string):
while not os.path.exists(some_path_string):
print 'some warning message'
some_path_string = input('Prompt to get path')
return some_path_string
if _name_ == main:
some_path_string = input("Prompt to get path")
some_path_string = verify_path(some_path_string)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.