我的程序有一个包含不同选项的菜单。
如果您选择l
或L
,则会加载packages.txt文件。这很好。
if option.upper() == 'L':
f = open( "packages.txt", "r" )
然后,如果您选择d
或D
(d显示),则应检查文件是否已加载,然后显示(“打印”)文件中给出的信息。
if option.upper() == 'D':
if open( "packages.txt", "r" ):
a = []
for line in f:
a.append(line)
print(line)
if open( "packages.txt", "r" ):
print("fail")
这是我写的代码,打印和显示工作正常,但我无法理解if文件打开语句。
答案 0 :(得分:3)
这里的问题是你要再次打开文件,而不是检查现有文件:
f = None
...
if option.upper() == 'L':
f = open( "packages.txt", "r" )
elif opetion.upper() == 'D':
if f and not f.closed:
...
else:
print("File not opened.")
请注意,这通常是一个坏主意。只需在需要时打开文件,这是一个更好的主意。
所以,更好的选择是这样的:
selected = option.upper()
filename = None
if selected == "L":
filename = "packages.txt"
elif selected = "D":
if filename:
with open(filename, "r") as f:
...
else:
print("The file to display has not been selected.")
请注意我使用the with
statement,它更具可读性并确保文件正常关闭,即使您有例外情况。