如何检查python中的路径是否为文件?



我正在编写一个脚本,该脚本对给定文件夹中的文件进行处理。进行一些检查以确保给定的路径(作为字符串)是一个目录路径并且是绝对的。

if not (os.path.isdir(dirpath) and os.path.isabs(dirpath)):
error_message = f"Path given: "{dirpath}" :was inappropriate for required uses."
main_logger.error(error_message)
raise Exception(error_message)

但是在一个文件夹上进行测试时,我得到了一些意想不到的结果。文件夹中包含一些pdf文件,该函数只提取"文件"。在一个文件夹中,忽略所有子文件夹。

file_list: list[str] = [os.path.join(dirpath, file) for file in os.listdir(dirpath) if os.path.isfile(file)]

但是它忽略了所有的pdf文件,并将它们标记为"而不是文件"那么,如何检查路径是否为任意文件而不是普通文件呢?我可以查一下是否有延期。但是我没有任何好的方法来做到这一点。

检查了一些其他的方法,例如:-

pathlib.Path(filepath).is_file()

但这也行不通。

我现在已经决定检查它是否不是一个目录路径。但了解其他方法可能会很有用。

有什么办法吗?

编辑:任意文件和普通文件的区别:-
任意文件:任意文件是指具有任意扩展名的文件。例如:- main.py, test.h等
常规文件:我使用了术语"常规文件";因为这是官方文件中所描述的。一个可能的定义可以在这里。

并且pathlib.Path(filepath).is_file()方法"不工作";这意味着它产生的结果与os.path.isfile()方法完全相同。

另外,我也不想检查特定的扩展名。我希望它对任何文件都有效。

你可以试试

file_list = [os.path.join(dirpath, file) for file in os.listdir(dirpath) if os.path.isfile(os.path.join(dirpath, file))]

您可以直接使用.endswith()方法。

if file.endswith('.py'):
...
enter code here
else:
...

相关内容

  • 没有找到相关文章

最新更新