Python Network Programming 简明教程

Python - Directory Listing

可以使用 Python 获取目录中的内容列表。我们可以制作一个程序,用于列出与运行 Python 的计算机位于同一台计算机上的目录的内容。我们也可以登录远程系统,列出远程目录的内容。

Listing Local Directory

在以下示例中,我们使用 listdir() 方法获取当前目录的内容。为了还指示内容的类型,如文件或目录,我们使用更多函数评估内容的性质。

for  name in os.listdir('.'):
    if os.path.isfile(name): print 'file: ', name
    elif os.path.isdir(name): print 'dir: ', name
    elif os.path.islink(name): print 'link: ', name
    else: print 'unknown', name

当我们运行以上程序时,我们得到以下输出:

file: abcl.htm
dir: allbooks
link: ulink

请注意,以上内容特定于运行 Python 程序的系统。结果将根据系统及其内容而有所不同。

Listing Remote Directory

我们可以使用 ftp 来访问远程系统,然后列出远程目录的内容。一旦建立连接,我们就可以使用命令以类似于列出本地目录的方式列出目录内容。

from ftplib import FTP
def main():
    ftp = FTP('ftp.ibiblio.org')
    ftp.login()
    ftp.cwd('pub/academic/biology/') # change to some other subject
    entries = ftp.nlst()
    ftp.quit()

    print(len(entries), "entries:")
    for entry in sorted(entries):
        print(entry)

if __name__ == '__main__':
    main()

当我们运行以上程序时,我们得到以下输出:

(6, 'entries:')
INDEX
README
acedb
dna-mutations
ecology+evolution
molbio