簡體   English   中英

讓用戶選擇保存文件的目錄,如果目錄不存在,如何再次請求目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM