当文件路径不完整时,如何检查文件是否存在并创建文件(如果丢失)

时间:2019-11-22 16:02:28

标签: python glob

我必须在此路径下创建一个名为file.txt的空文本文件

/home/project/test*/today/file.txt

test *每次都会更改,例如test_product或test_1等。

我尝试了以下代码:

    if(os.path.exists("/home/project/test*/today/file.txt"):
        print "Found"
    else:
        open("/home/project/test*/today/file.txt",a).close()```

我收到此错误

        ```IOError: [Errno 2] No such file or directory: '/home/project/test*/today/file.txt'```

我知道我可以使用glob搜索带有*等路径的文件,但是我无法弄清楚在路径中带有*的情况下如何创建文件。

2 个答案:

答案 0 :(得分:3)

您的代码在逻辑上没有任何意义。你基本上是在说

if the file exists: display the text Found
otherwise the file does not exist, so try to open the file that does not exist

答案 1 :(得分:0)

我会告诉你为什么它不起作用。 os模块不支持通配符。

如果您想使用通配符*,则可以使用glob。

import glob
import os
from pathlib import Path

def check_for_files(filepath):
    for filepath_object in glob.glob(filepath):
        if os.path.isfile(filepath_object):
            return True

    return False

file_to_check = "/home/project/test*/today/file.txt"

if not (check_for_files(file_to_check):
   Path(file_to_check).touch()