2014-10-12 2 views
2

У меня есть папка с именем data внутри моей папки python, которая заполнена текстовыми файлами, каждая из которых называется аббревиатурой состояния («NY», «CA», «RI», и т.д.). Мне нужно взять пользовательский ввод имени состояния, а затем открыть этот файл.Как открыть файл из каталога внутри каталога python

Я попытался это:

file = "" 
file = open("NY", "r").read().splitelines() 

но придумали ничего в каталоге. Как открыть отдельные файлы из папки?

+3

Возможно, вы ищете 'os.path.join (os.path.dirname (__ FILE__),«Нью-Йорк»)', который будет открывать файлы относительно каталога, содержащего файл .py, а не текущий рабочий каталог. – o11c

+0

@ o11c, взял на себя смелость ответить на эту идею. Дал вам большие пальцы;) – brunsgaard

ответ

2
from os.path import join, dirname 

data_dir = join(dirname(__file__), 'data') 

with open(join(data_dir, raw_input('Enter state: '))) as f: 
    print(f.readlines()) 

Этот код делает базовую переменную и объединяет ее с именем состояния. После выполнения вы увидите

[email protected] ~/t/test> python test.py 
Enter state: NY 
['Hello, I am the NY file\n'] 

Этот пример был запущен в контексте следующей структуры.

. 
├── data 
│   └── NY 
└── test.py 
Смежные вопросы