python-3.x 检查特定文件是否在目录中

jtw3ybtb  于 2022-11-19  发布在  Python
关注(0)|答案(3)|浏览(146)
File_Name = "Invoice_Dmart"
Folder-Name = "c:\Documents\Scripts\Bills"

如何检查特定的文件名是否存在于“文件夹名称”与任何扩展名,如果是,在一个变量中获取完整的路径.
我一直在使用的代码:

import os.path
if not os.path.Folder-Name(File_Name):
      print("The File s% it's not created "%File_Name)
      os.touch(File_Name)
      print("The file s% has been Created ..."%File_Name)

请提出解决这个问题的最佳方法。

f2uvfpb9

f2uvfpb91#

之前,您应该将变量Folder-Name的语法修复为Folder_Name
我想您可以通过简单地将两个字符串通过斜杠相加,并使用函数os.path.exists()来解决这个问题,如下所示:

import os.path

File_Name = "Invoice_Dmart"
Folder_Name = "c:\Documents\Scripts\Bills"

path = os.path.join(Folder_Name, File_Name)
     
exist = os.path.exists(path)
print(exist)

同样使用os.path.join()将字符串相加,它会自动在字符串之间添加一个斜杠。
这对我有效,希望对你也有效。

0yg35tkg

0yg35tkg2#

我在这里使用pathlib.Path,它提供了方便的api来遍历目录(.iterdir()),也可以得到没有扩展名的文件名(.stem),所以你可以这样做。

>>> from pathlib import Path
>>> [str(child) for child in Path(your_folder_name).iterdir() if child.stem == your_file_name]
mmvthczy

mmvthczy3#

请尝试以下代码

import os

file_name = "Invoice_Dmart"
folder_name = "c:\Documents\Scripts\Bills"

# os.path.splitext() split filename and ext
# os.listdir() list all files in the given dir
filenames_wo_ext = [os.path.splitext(elem)[0] for elem in os.listdir(folder_name)]
if file_name not in filenames_wo_ext:
    print("The File %s it's not created "% file_name)
    with open(file_name, 'w'):
        print("The file %s has been Created ..."% file_name)

相关问题