Python读取用户输入文件名的文件无内容输出问题求助
问题分析与解决
你的代码存在两个核心问题,导致出现“打印文件已打开但看不到读取内容”的情况:
- 读取的内容未被处理:你调用了
file.read()方法,但没有将读取到的内容保存到变量中,也没有输出它。这就好比打开书读了内容,却没把内容展示出来,自然看不到结果。 - 缺少异常处理逻辑:
try块没有对应的except分支,一旦输入的文件名不存在、没有读取权限,程序会直接崩溃抛出异常,无法继续执行后续逻辑。
修正后的代码
def open_sn_file(self): while True: file_name = input("Please enter a file name or enter 'done' to exit the program: ") if file_name == "done": print("Bye.") break try: with open(file_name, 'r') as file: # 将读取的内容存储到变量 file_content = file.read() print("File is now open.") # 输出读取到的内容 print("文件内容:") print(file_content) # 捕获文件不存在的异常 except FileNotFoundError: print(f"错误:文件 '{file_name}' 不存在,请检查文件名。") # 捕获其他读取异常(如权限问题) except Exception as e: print(f"读取文件时发生错误:{str(e)}")
关键改动说明
- 新增
file_content = file.read(),把文件内容存储到变量中,后续可以打印、处理这些内容。 - 添加
print(file_content)输出读取到的内容,让你能直观看到文件里的信息。 - 补充
except分支,分别处理文件不存在和其他通用异常,避免程序崩溃,同时给出明确的错误提示。
内容的提问来源于stack exchange,提问作者Sameerah Mahmood
相关产品推荐
相关产品推荐

