# Travailler avec des fichiers

Ouvrir, créer ou modifier un fichier avec Python et la bibliothèque PySide est très facile.

Avec le widget [QFileDialog](https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QFileDialog.html), PySide permet d'ouvrir une boîte de dialogue système pour sélectionner un ou plusieurs fichiers. La fonction `getSaveFileName()` de cet objet permet par exemple de récupérer le nom du fichier à enregistrer, tandis que `getOpenFileNames()` permet de récupérer les noms de fichiers sélectionnés dans la boîte de dialogue.

Exemple d'ouverture d'un fichier en écriture :

```python
# Ouverture de la boîte de dialogue
file_dialog = QFileDialog(self)

# Récupération du nom du fichier que l'on veut créer
output_file_name = file_dialog.getSaveFileName()[0]

# Ouverture du fichier en écriture ("w" pour write)
output_file = open(output_file_name, "w")

# On écrit dans le fichier
output_file.write("Hello World!\n")

# On ferme le fichier
output_file.close()
```

Lire un fichier est tout aussi simple :

```python
# Boite de dialogue pour ouvrir un fichier
file_dialog = QFileDialog(self)
file_dialog.setFileMode(QFileDialog.FileMode.ExistingFiles)

# getOpenFileName() retourne le chemin complet du fichier sélectionné
file_name = file_dialog.getOpenFileNames(self, "Select files...")

# On ouvre le fichier en lecture ("r" pour read)
file = open(file_name, "r")

# On lit le fichier ligne par ligne et on l'affiche dans le terminal
for line in file:
    print(line)

# On ferme le fichier
file.close()
```