2014-10-08 170 views
1

我正在開發一個項目,我需要在本地服務器上或遠程(通過url)打開和閱讀文本文件。是否有一個python函數可以像php一樣工作:用python在本地或通過url遠程打開文本文件

file_get_contents() 

可以這樣做嗎?現在我有:

def get_data_from_file(path): 

    for i, line in enumerate(open(path)): 
     ..... 

我想在本地或遠程傳遞路徑。

+0

你說的還是「遠程」,「在本地服務器上」一個文本文件呢?如果只是SMB,NFS,AFP等共享,您只需打開它;高於文件系統級別的任何事情都不在乎分享來自哪裏。如果是FTP或HTTP URL,或者可以通過將ssh讀入系統然後閱讀或者不同的文件來訪問文件,那麼答案取決於它是哪一個。 – abarnert 2014-10-08 19:49:48

+1

不應該太難以推出自己的。 。 。 '嘗試'打開文件。如果你失敗了,那麼'嘗試'使用'urllib2'來打開url。然後返回調用者的文件對象以使用他們想要的方式(或者引發合適的異常都不成功)。 。 。 – mgilson 2014-10-08 19:49:53

+0

可能的重複[如何在Python中將文本文件讀入字符串變量](http://stackoverflow.com/questions/8369219/how-do-i-read-a-text-file-into-a-在python中的字符串變量) – will 2014-10-08 19:50:09

回答

0

你可以嘗試:

def file_get_contents(path): 
    try: 
    urllib.urlretrieve(path, filename=path) 
    except: 
    print 'not a page' 

    if os.path.exists(path): 
    with open(path, r) as file: 
     data = file.read() 
     print data 
    else: 
    print 'no such file'