如何从python中的指定路径获取文件?

时间:2015-09-21 10:05:48

标签: python python-2.7

我正在将一组zli文件从一个文件夹复制到另一个文件夹。现在我需要解压缩该文件夹中的每个文件。我在Windows上使用Pycharm运行python,文件夹在Linux服务器中。如何进入当前文件夹并解压缩每个文件?

from __future__ import with_statement
from fabric.api import *
import ConfigParser, paramiko, shutil, os, glob, zlib

def get_Connection():
    config = ConfigParser.RawConfigParser()
    config.read('config.cfg')
    env.user = config.get('UK_CDN','db.user_name' )
    env.password = config.get('UK_CDN','db.password' )
    host = config.get('UK_CDN','db.ip' )

    with settings(hide('warnings', 'running', 'stdout', 'stderr'), warn_only=True, host_string=host):
    paramiko.util.log_to_file('ENC_Analysis.log')
    files = run('ls -ltr /home/ndsuser/enc/data/dbSchema_1/catalogue_24802')
    run('rm -rf  /usr/rosh/ENC_Analysis/*')
    run('cp /home/ndsuser/enc/data/dbSchema_1/catalogue_24802/* /usr/rosh/ENC_Analysis/')
    count = run('ls -l /usr/rosh/ENC_Analysis/ | wc -l')
    os.chdir('/usr/rosh/ENC_Analysis/')
    for file in os.listdir('/usr/rosh/ENC_Analysis/'):
        print file

如果我运行此代码,我会遇到如下问题。

  File "C:/Work/Scripts/VOD/ENC.py", line 20, in get_Connection
os.chdir('/usr/rosh/ENC_Analysis/')
WindowsError: [Error 3] The system cannot find the path specified:  '/usr/rosh/ENC_Analysis/'

我知道这个问题是因为系统无法在Windows机器中找到路径。如何从Windows机器到达Linux服务器中的路径?

1 个答案:

答案 0 :(得分:2)

您可以将PyCharm设置为自动将python脚本复制到远程服务器并在那里运行。 PyCharm的文档位于https://www.jetbrains.com/pycharm/help/configuring-remote-interpreters-via-ssh.html

由于您已经导入了paramiko,您还可以通过ssh会话将所有相关命令发送到Linux服务器,同时在本地运行脚本。这似乎有点尴尬,但仍然有效。

sshconnection = paramiko.SSHClient()
sshconnection.connect(hostname, username=..., password=... )
stdin, stdout, stderr = sshconnection.exec_command('ls -ltr /home/...') 

等等。