如何测试字符串是否引用文件或目录?用正则表达式?在蟒蛇?

Kil*_*awr 3 python regex file-management

所以我正在编写一个带有os模块的通用备份应用程序,pickle并且到目前为止我已经尝试了下面的代码来查看某些内容是否是文件或目录(基于其字符串输入而不是其物理内容)。

import os, re

def test(path):
    prog = re.compile("^[-\w,\s]+.[A-Za-z]{3}$")
    result = prog.match(path)
    if os.path.isfile(path) or result:
        print "is file"
    elif os.path.isdir(path):
        print "is directory"
    else: print "I dont know"
Run Code Online (Sandbox Code Playgroud)

问题

test("C:/treeOfFunFiles/")
is directory
test("/beach.jpg")
I dont know
test("beach.jpg")
I dont know
test("/directory/")
I dont know
Run Code Online (Sandbox Code Playgroud)

期望输出

test("C:/treeOfFunFiles/")
is directory
test("/beach.jpg")
is file
test("beach.jpg")
is file
test("/directory/")
is directory
Run Code Online (Sandbox Code Playgroud)

资源

我应该使用什么正则表达式来区分可能是 afile和可能是 a的区别directory?还是有不同的方法来解决这个问题?

Mr.*_*uig 5

os模块提供了检查路径是文件还是目录的方法。建议在正则表达式上使用此模块。

>>> import os
>>> print os.path.isfile(r'/Users')
False
>>> print os.path.isdir(r'/Users')
True
Run Code Online (Sandbox Code Playgroud)