有没有办法检查文件是否有扩展名,如果没有则附加该扩展名?
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
我的代码应该创建 .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