#python #file #class #operating-system
#python #файл #класс #операционная система
Вопрос:
Это мой код на python для выполнения таких операций, как удаление, перемещение и переименование нескольких файлов. Этот код отлично работает для всех типов файлов. Предположим, я хочу добавить необязательный параметр, например, для удаления файлов с расширением «.pdf», как я могу добавить эту опцию? Например, его добавление не обязательно, но если вы передадите его, все файлы pdf будут удалены.
Я просто хочу добавить необязательный параметр, который при передаче выполняет действие только для этих файлов
import os
class FileOperation:
def __init__(self, file_loc):
self.file_loc = file_loc
def file_location(self):
print("Source folder contents: ")
print()
for i in os.listdir(self.file_loc):
print(i)
print()
def rename_bulk_files(self):
c = 0
path = self.file_loc
for i in os.listdir(self.file_loc):
dot_index = i.index('.')
src = os.path.join(path, i)
dst = os.path.join(path, i[0:dot_index] "_" str(c) i[dot_index:])
os.rename(src, dst)
c = 1
return "Renaming of files has finished"
def delete_bulk_files(self):
path = self.file_loc
for i in os.listdir(self.file_loc):
file_path = os.path.join(path, i)
os.remove(file_path)
print("All files have been deleted")
def move_bulk_files(self):
path = self.file_loc
destination_folder = input("Enter the destination folder / folders separated by a comma: ")
for i in os.listdir(self.file_loc):
src_path = os.path.join(path, i)
des_path = os.path.join(destination_folder, i)
os.replace(src_path, des_path)
print("All files have been moved to the destination folder")
source_folder = input("Enter source folder/ folders locations separated by a comma: ")
my_file_operations = FileOperation(source_folder)
my_file_operations.delete_bulk_files()
Ответ №1:
files_extension = input(“Enter files extension (defaults to all files if not provided): “)
А затем в delete_bulk_files
:
file_path = os.path.join(path, i)
if not files_extension or file_path.endswith(files_extension):
os.remove(file_path)
Комментарии:
1. Несмотря на то, что это работает, если я ничего не введу в file_extension , по умолчанию все файлы должны быть удалены
2. Правильно, если вы нажмете enter без указания расширения, он должен удалить все файлы