有没有办法检查文件是否有扩展名,如果没有则附加该扩展名?

Is there a way to check if a file has an extension, and if not append that extension?

我的代码应该创建 .csv 文件并且确实如此,但它并不总是将 .csv 扩展名附加到文件末尾,即使它是 .csv.我只想在返回给用户之前检查最终输出文件,如果没有该扩展名,则附加 .csv

这是我目前使用的片段:

if not path_to_file.endswith('.csv' or '.json'):
    path_to_file.append('.csv')
else:
    return path_to_file.absolute()

这会引发错误:AttributeError: 'PosixPath' object has no attribute 'endswith'

使用路径需要使用 pathlib. You don't even need to check for the current extension and simply use the with_suffix() 方法:

from pathlib import Path

print(Path("/a/b/c").with_suffix(".csv"))
print(Path("/a/b/c.csv").with_suffix(".csv"))

都会给:

\a\b\c.csv
\a\b\c.csv