Python中不调用函数检查文件是否存在?代码正确性求验证
问题解答
你的代码是不正确的,原因如下:
- 使用
open('FizzBuzz.txt','w')模式时,无论目标文件是否存在,Python都不会抛出异常:文件不存在时会自动创建新文件,文件存在时会直接清空原有内容。因此你的except分支永远不会执行,无法实现“检查文件是否存在”的目的。
如果要在不使用额外工具函数(如os.path.exists等)的前提下检查文件是否存在,正确的做法是用只读模式尝试打开文件:
try: # 以只读模式尝试打开文件 file = open('FizzBuzz.txt', 'r') file.close() print('File already existed!') except FileNotFoundError: # 捕获文件不存在的异常,说明文件未创建 print('File does not exist!') # 此时可以创建文件并写入内容 with open('FizzBuzz.txt', 'w') as f: for i in fizzbuzz: f.write(str(i) + '\n')
补充说明:
- 务必捕获具体的
FileNotFoundError异常,而非使用裸except——裸except会捕获所有类型的异常(比如权限不足、IO错误等),导致错误的判断逻辑。 - 打开文件后记得关闭,或者使用
with语句自动管理文件句柄,避免资源泄漏。
内容的提问来源于stack exchange,提问作者baschtheben
相关产品推荐
相关产品推荐

