29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
|
import os
|
|||
|
|
|||
|
def find_shortest_filename(source_dir, result_file):
|
|||
|
# Существует ли папка result? Если нет, то создается
|
|||
|
result_dir = os.path.dirname(result_file)
|
|||
|
if not os.path.exists(result_dir):
|
|||
|
os.makedirs(result_dir)
|
|||
|
print(f"Created directory {result_dir}")
|
|||
|
|
|||
|
# Поиск файлов в исходной директории
|
|||
|
files = [f for f in os.listdir(source_dir) if os.path.isfile(os.path.join(source_dir, f))]
|
|||
|
|
|||
|
if not files:
|
|||
|
print(f"No files found in {source_dir}")
|
|||
|
return
|
|||
|
|
|||
|
# Поиск файла с самым коротким именем
|
|||
|
shortest_file = min(files, key=len)
|
|||
|
shortest_file_path = os.path.join(source_dir, shortest_file)
|
|||
|
|
|||
|
# Копирование содержимого в result/data.txt. Файл будет перезаписан, если уже существует
|
|||
|
with open(shortest_file_path, 'r') as f_in, open(result_file, 'w') as f_out:
|
|||
|
f_out.write(f_in.read())
|
|||
|
|
|||
|
print(f"Moved {shortest_file} to {result_file}")
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
find_shortest_filename('/var/data', '/var/result/data.txt')
|