我必须在此路径下创建一个名为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搜索带有*等路径的文件,但是我无法弄清楚在路径中带有*的情况下如何创建文件。
答案 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()