检查是否已加载.txt文件

时间:2012-05-06 07:56:46

标签: python file loading

我的程序有一个包含不同选项的菜单。 如果您选择lL,则会加载packages.txt文件。这很好。

    if option.upper() == 'L':
        f = open( "packages.txt", "r" )

然后,如果您选择dD(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文件打开语句。

1 个答案:

答案 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,它更具可读性并确保文件正常关闭,即使您有例外情况。