这比我的工资等级高一点,所以我想我会在这里问一下。
我的简单 Python 代码提示用户输入文件名。但是,它必须是特定类型的文件,否则我会抛出错误。在这种情况下,输入的文件必须是文本或 CSV 文件,即文件扩展名必须是 .txt
或 .csv
filename = raw_input("Please enter .txt or .csv file: ")
我不知道如何测试它。你从类似的东西开始
def fileName():
while True:
try:
filename = raw_input("Please enter .txt or .csv file: ")
然后使用 if 语句检查最后四个字符是 .txt
还是 .csv
。
执行此操作的标准方法是什么?
最佳答案
如果您想一直询问,直到用户使用 str.endswith 输入具有正确扩展名的文件名:
def fileName():
while True:
filename = raw_input("Please enter .txt or .csv file: ")
if filename.endswith((".csv",".txt"))
return filename
else:
print("Extension must be .csv or .txt")
如果您实际上只想验证输入并在错误输入时引发错误:
def fileName():
filename = raw_input("Please enter .txt or .csv file: ")
if filename.endswith((".csv",".txt")):
return filename
raise ValueError("Extension must be .csv or .txt")
您不需要 try/except 来检查最后四个字符是 .txt
还是 .csv
,只是因为文件名可能以正确的扩展名结尾并不意味着它是一个有效文件或在打开时不会导致错误,您应该担心在实际打开文件时捕获异常。
关于python - 异常处理,只接受特定的文件输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089239/