2012-07-03 3 views
0

suppose que je l'ai suivantlire les fichiers à partir du répertoire qui a le script en cours d'exécution plutôt que d'appeler emplacement du répertoire où le script a été appelé, python

test/ 
    Main.py 
test/one/ 
    One.py 
    test1.txt 
test/two/ 
    Two.py 
    test2.txt 

Ce que je veux faire est, exécutez Main.py et appeler un. py et Two.py et veulent lire des fichiers. Depuis répertoire contenant One.py a un fichier test1.txt, je veux lire ce fichier et le répertoire contenant Two.py a un fichier test2.txt

Cela peut être fait simplement par

open("one/test1.txt", "r") 

et open ("two/test2.txt", "r") dans deux fichiers

Existe-t-il un autre moyen de lire les fichiers? C'est un cas simple que j'ai pris.

Je suis confronté à ce problème. Pour cela, j'ai créé l'objet de réglage et fournir manuellement l'emplacement requis à ce répertoire et transmis cet objet de réglage à toutes les classes qui ont besoin d'un emplacement pour lire le fichier

Y a-t-il une approche différente?

Répondre

3

Si je comprends bien votre question, vous voulez connaître le répertoire du fichier python en cours d'exécution?

Vous pouvez accéder à la variable spéciale __file__ dans un programme Python. Il retourne le chemin du fichier python.

Pour ouvrir un fichier nommé dans le répertoire du script en cours d'exécution, utilisez:

import os 
f = open(os.path.join(os.path.dirname(__file__), "filename.txt")) 
Questions connexes