2017-10-19 1 views
0

Je vérifie si un fichier est présent ou non s'il est présent, puis j'ajoute à ce fichier s'il ne crée pas un nouveau fichier.Créer un fichier python dans un répertoire spécifié par l'utilisateur

J'ai fait comme ci-dessous.

if os.path.exists(test + '.csv'): 
     system_file = open(test + '.csv', 'a') 
     pass 
    else: 
     system_file = open(test + '.csv', 'w') 

Ceci vérifie et crée des fichiers à l'emplacement par défaut C:/users/viru/Desktop. Est-il possible de créer ces fichiers dans C:/users/viru/testing/abc répertoire

+0

Que contient la variable 'test'? – user1190882

+0

@ user1190882 liste des tables –

+0

Bien sûr: augmentez simplement ** test ** pour commencer avec le chemin de répertoire désiré. – Prune

Répondre

1

Il y a beaucoup plus facile façon de faire. Vous avez raison de penser que si le file existe déjà, vous ne voulez pas le open avec le mode 'w' car cela effacera le contenu. Cependant, vous pouvez 'ajouter' à un (nouveau) filevide ainsi que un file qui a déjà été créé et qui a un contenu avec le mode 'a' (ajout).

Vous pouvez juste faire:

system_file = open(test + '.csv', 'a') 

sans if-statements, car même si test est un path à un file qui n'a pas encore été créé, vous pouvez encore maintenant write à elle, même si elle a été ouvert avec le mode append ('a').

Vous pouvez en savoir plus sur les différents modes qui sont acceptés par la fonction open()here.

Espérons que cela soit utile!

0

Vous pouvez facilement réaliser cela en utilisant os.path.join.

J'ai utilisé le répertoire H:\os comme répertoire désiré et shovon comme nom de fichier désiré. Changez-le comme votre propre entrée.

import os 
test = os.path.join("H:",os.sep,"os","shovon") 

if os.path.exists(test + '.csv'): 
    system_file = open(test + '.csv', 'a') 
    print("File already exists") 
else: 
    system_file = open(test + '.csv', 'w') 
    print("New file is created") 

Le os.sep est utilisé pour ajouter signe de séparation en fonction de votre système d'exploitation. Les chemins sont concaténés en tant que chaîne et la lettre de lecteur est avec un deux-points supplémentaire comme vous le voyez.