os.walk и os.scandir возвращают ~$ вместо 1-го и 2-го символов имени файла
У меня есть сценарий Python, который читает все имена файлов и пути в каталоге на общем диске. Затем он берет эти пути и имена файлов и создает некоторые гиперссылки HTML, которые я могу добавить на наш сайт, чтобы мне не приходилось делать это вручную по одному. Скрипт работает как положено, но по какой-то причине оба os.walk
а также os.scandir()
возвращаются ~$
на некоторых из путей и имен файлов, заменяющих 1-й и 2-й символы в имени файла.
Я не могу найти какую-либо документацию по этому поведению, поэтому, если у кого-то есть понимание, это было бы здорово.
Код, который я использую, выглядит следующим образом:
import os
f = os.scandir(path=r"\\server_path\share_folder")
print(f)
for fn in f:
format_name = fn.name.split('.')[0].replace('_', ' ')
print(r' <p><a href="{}">{}</a></p>'.format(fn.path, format_name), "\n")
1 ответ
С помощью ссылки @Barmar, приведенной в комментариях, я узнал, что имена файлов с ~$
в начале фактически временный файл, который существует, когда кто-то еще открывает файл. Обладая этими знаниями, я теперь могу решить проблему, просто исключив файлы с этим префиксом.
Код:
import os
f = os.scandir(path=r"\\server_path\share_folder")
print(f)
for fn in f:
if fn.name[:2] != "~$":
format_name = fn.name.split('.')[0].replace('_', ' ')
print(r' <p><a href="{}">{}</a></p>'.format(fn.path, format_name), "\n")