Di sini saya akan menjelaskan cara mengubah skrip Python supaya boleh berada dalam folder yang sama dengan fail-fail XML yang hendak dipadam dan dapat memadam semua fail XML dalam folder tersebut dan subfolder-subfoldernya.
import os
import glob
# Fungsi untuk memadam semua fail XML dalam direktori semasa dan subfoldernya
def delete_xml_files():
# Dapatkan direktori semasa
current_directory = os.getcwd()
# Bentuk corak untuk mencari fail XML secara rekursif
xml_files_pattern = os.path.join(current_directory, '**', '*.XML')
# Gunakan glob untuk mencari semua fail XML yang sepadan dengan corak
xml_files = glob.glob(xml_files_pattern, recursive=True)
# Iterasi setiap fail XML yang dijumpai dan cuba padam menggunakan os.remove()
for xml_file in xml_files:
try:
os.remove(xml_file)
print(f"Berjaya dipadam: {xml_file}")
except OSError as e:
print(f"Ralat semasa memadam {xml_file}: {e}")
# Contoh penggunaan:
if __name__ == "__main__":
delete_xml_files()
Penjelasan:
os.getcwd()
:- Mendapatkan direktori kerja semasa di mana skrip berada. Ini adalah titik permulaan untuk mencari fail XML.
Fungsi
delete_xml_files
:- Membentuk corak (
os.path.join(current_directory, '**', '*.xml')
) untuk mencari semua fail.xml
secara rekursif bermula dari direktori semasa. - Menggunakan
glob.glob(xml_files_pattern, recursive=True)
untuk mendapatkan senarai semua fail XML yang sepadan dengan corak. - Melalui setiap fail XML yang dijumpai dan cuba untuk memadamnya menggunakan
os.remove()
. - Mengendalikan pengecualian (
OSError
) yang mungkin berlaku semasa pemadaman dan mencetak mesej yang sesuai.
- Membentuk corak (
Contoh Penggunaan:
- Apabila skrip dijalankan, ia akan bermula dari direktori semasa dan memadam semua fail XML dalam direktori tersebut dan subfoldernya.
- Pastikan skrip (
delete_xml_files
) diletakkan di dalam folder di mana anda ingin melakukan pemadaman.
Nota:
- Direktori Kerja Semasa: Pastikan skrip berada di dalam direktori di mana anda ingin memadam fail XML, kerana
os.getcwd()
mendapatkan direktori semasa pelaksanaan. - Pengendalian Ralat: Skrip ini mengendalikan ralat yang mungkin berlaku semasa pemadaman fail (contohnya, kebenaran ditolak, fail tidak dijumpai) dan mencetak mesej untuk setiap percubaan pemadaman.
Dengan pengubahsuaian ini, skrip akan berfungsi dalam folder di mana ia berada dan dapat memadam semua fail XML secara rekursif dalam folder tersebut dan subfoldernya.
If you want the Python script to reside inside the folder where it will delete all XML files within that folder and its subfolders, you can modify the script to use the current directory (`.`) as the starting point for the deletion operation. Here's how you can modify the script:
```python
import os
import glob
# Function to delete all XML files in the current directory and its subdirectories
def delete_xml_files():
# Get the current directory
current_directory = os.getcwd()
# Construct the pattern to match XML files recursively
xml_files_pattern = os.path.join(current_directory, '**', '*.xml')
# Use glob to find all XML files matching the pattern
xml_files = glob.glob(xml_files_pattern, recursive=True)
# Iterate through each XML file found and delete it
for xml_file in xml_files:
try:
os.remove(xml_file)
print(f"Deleted: {xml_file}")
except OSError as e:
print(f"Error deleting {xml_file}: {e}")
# Example usage:
if __name__ == "__main__":
delete_xml_files()
```
### Explanation:
1. **`os.getcwd()`**:
- Retrieves the current working directory where the script resides. This is the starting point for finding XML files.
2. **delete_xml_files Function**:
- Constructs a pattern (`os.path.join(current_directory, '**', '*.xml')`) to match all `.xml` files recursively starting from the current directory.
- Uses `glob.glob(xml_files_pattern, recursive=True)` to retrieve a list of all XML files matching the pattern.
- Iterates through each XML file found and attempts to delete it using `os.remove()`.
- Handles exceptions (`OSError`) that might occur during deletion and prints appropriate messages.
3. **Example Usage**:
- When you run the script, it will start from the current directory and delete all XML files in that directory and its subdirectories.
- Make sure the script (`delete_xml_files`) is placed inside the folder where you want to perform the deletion.
### Notes:
- **Current Working Directory**: Ensure the script is located in the directory where you want to delete XML files, as `os.getcwd()` fetches the current directory of execution.
- **Error Handling**: The script handles errors that may occur during file deletion (e.g., permission denied, file not found) and prints messages for each deletion attempt.
This modification ensures that the script operates within the folder where it resides and deletes all XML files recursively within that folder and its subfolders.
0 Comments