2014-10-12 149 views
2

我有一個名爲數據的文件夾,裏面充滿了文本文件,每個文件名都是一個州的縮寫(「NY」,「CA」,「RI」等等。)。我需要輸入用戶名稱的狀態,然後打開該文件。如何從python目錄中的目錄打開文件

我嘗試這樣做:

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

但它想出了沒有在目錄中。我怎樣才能打開文件夾中的單個文件?

+3

也許你正在尋找'os.path.join(os.path.dirname(__ FILE__), 'NY')',這將打開相對文件包含.py文件,而不是目錄當前工作目錄。 – o11c 2014-10-12 00:24:09

+0

@ o11c,冒昧地用這個想法回答了一個答案..給你豎起大拇指;) – brunsgaard 2014-10-12 00:33:11

回答

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'] 

此示例在以下diretory結構的上下文中運行。

. 
├── data 
│   └── NY 
└── test.py