2017-10-13 10 views
0

J'ai un script python qui doit ouvrir un fichier dans un autre répertoire, les deux répertoires partagent un parent commun, mais je ne sais pas où le parent peut être localisé et il doit fonctionner sur plusieurs OS.Ouvrir le fichier dans le répertoire adjacent

-Parent 
    -dir1 
     -file.txt 
    -dir2 
     -script.py 

J'ai essayé d'une autre réponse, mais cela ne fonctionne pas:

import os.path 
current_path = os.path.dirname(__file__) 
file_path = os.path.relpath('..\\Parent\\dir1\\file.txt', current_path) 
with open(file_path, 'rb') as afile: 

Mais je reçois juste que le chemin nest pas reconnu (dans ce cas sous Linux).

Répondre

1

Pour exécuter plusieurs systèmes d'exploitation que nous devrions utiliser os.path. Le code ci-dessous peut exécuter un script depuis n'importe quel répertoire.

import os 
script_path = os.path.realpath(__file__) 
parent_path = os.path.dirname(script_path) 
file_path = os.path.join(os.path.sep,parent_path,"dir1","file1.txt") 

print file_path 
0

Que diriez-vous os.chdir:

os.chdir("../dir2") 
0

OK, je trouve une solution qui fonctionne sur Linux et Windows

import os.path 
current_path = os.path.dirname(__file__) 
file_path = os.path.abspath(os.path.join(current_path, "..", "dir1", "file.txt")) 
with open(file_path, 'rb') as afile: