2014-10-08 63 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'