验证用户输入的文件名

时间:2017-03-16 18:52:47

标签: python validation

import os
inF = open(input("Enter Filename: "),'r')
fname = (inF)
if os.path.isfile(fname):
    print("file does exist at this time")
else:
    print("no such file")

我想验证用户输入的文件是否存在,但每次文件不存在时,错误都没有出现但是我得到了一个回溯错误而不是程序要求用户输入文件名egain。

3 个答案:

答案 0 :(得分:2)

因为你在输入时立即打开它;你没有机会让isfile函数运行。

答案 1 :(得分:0)

您尝试在测试存在之前打开文件

import os
import re

fname = input("Enter Filename: ")
if os.path.isfile(fname):
    print("file does exist at this time")
    print("words:", re.findall(r"\w+", open(fname).read()))
else:
    print("no such file")

如果将文件包装在异常处理程序中,则立即打开文件会很有效。它一步测试存在性和可读性

try:
    with open(input("Enter Filename: ")) as inF:
        print("file opened okay")
        print("Words:", re.findall(r"\w+", inF.read()))
except OSError as e:
    print("Failed", e)

答案 2 :(得分:0)

如果必须打开文件对象并决定该文件是否存在。 make fname = inF.name这将从inF对象中获取文件名的名称。

import os
inF = open(input("Enter Filename: "),'r')
fname = inF.name
if os.path.isfile(fname):
    print("file does exist at this time")
else:
    print("no such file")