我正在使用python 3 argparse。我有多個文件作爲argparse.FileType
傳遞,我用它來寫入一些數據。我想檢查一些條件並僅在符合條件時纔打開這些文件。然而,argparse會立即打開它們,即使我使用錯誤代碼退出,它們也會被創建。如何僅在條件滿足時才使用argparse.FileType打開文件?
import argparse
from sys import exit
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--condition', action='store_true')
parser.add_argument('out1', type=argparse.FileType('w'))
parser.add_argument('out2', type=argparse.FileType('w'))
args = parser.parse_args()
if not args.condition:
print('ERROR: please use --condition')
exit(2)
args.out1.write('hello\n')
args.out2.write('world\n')
if __name__ == '__main__':
main()
如果我不通過--condition
參數運行這個例子中,它仍然會創建兩個新的文件。在這種情況下,我不想創建它們。我可以做到這一點,而無需傳遞文件名並手動打開文件?
如果你想做更具體的處理,不要使用'FileType';自己做。 – jonrsharpe