import sys
filepath = "D:\\Desktop\\SIGN IN OUT\\"
times = ["min.txt","hour.txt","datein.txt","dateout.txt"]
while True:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = z+'\\'+z
for x in range(len(times)):
f = open(filepath+y+times[x],'w')
f.write('0')
f.close()
Répondre
La jonction de fichiers avec \\
n'est pas la meilleure façon de le faire. La méthode recommandée utilise os.path.join
à partir du module os
:
import os
while True:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = os.path.join(*z.split())
for x in times:
with open(os.path.join(filepath, y, x), 'w') as f:
f.write('0')
Je recommande aussi -
L'utilisation d'un gestionnaire de contexte pour gérer vos fichiers, il rend votre propre code.
Enumérer les
times
directement plutôt que les indices
En outre, comme l'affirme Jean-François Fabre dans sa réponse, vous feriez mieux d'utiliser os.mkdir
pour créer tous les répertoires qui n'existent pas avant de créer des fichiers en eux. Here's une bonne référence.
Cela vaut-il la peine de mentionner le choix de faire 'for x dans times:' à la place de la plage, aussi? –
Pouvez-vous s'il vous plaît ajouter «importer os» au début de votre code? – Ben
Les deux, fait. Je vous remercie. –
le problème est que dans ce code:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = z+'\\'+z
y
est deux fois la même valeur, rejoint par\\
(ne vous donnera pas les répertoires que vous attendez, mais ce n'est pas la principale problème)- mais lorsque vous essayez d'ouvrir votre fichier, vous le faites dans un répertoire qui n'existe probablement pas .
Vous devrez ajouter (à l'aide os.path.join
est plus propre que @COLDSPEED noté):
my_dir = os.path.join(filepath, y)
if not os.path.isdir(my_dir):
os.makedirs(my_dir) # creates dirs if doesn't exist, with full path
avant d'ouvrir vos fichiers de sorte que le répertoire censé les contenir existe (open
échoue si le répertoire doesn 't existent)
Obtenez-vous des erreurs spécifiques? Qu'est-ce qui fait que la création de fichiers ne fonctionne pas? – HunterM267