temp在getopt.getopt中保持为空

时间:2017-07-24 03:20:22

标签: python python-2.7

在我的python脚本中使用getopt.getopt()函数时,temp返回值保持为空。我错过了什么。

def ParseOpts(cmdName):
    shortForm = 'c:n:';
    longForm  = 'cluster=,node='.split(',');

    try:
        print sys.argv;
        temp, args = getopt.getopt(sys.argv, shortForm, longForm);
        print temp;
    except getopt.GetoptError:
        print 'error !!'

命令:

$ python helloWorld.py --cluster=Test --node=Test2
['helloWorld.py', '--cluster=Test', '--node=Test2']
[]

1 个答案:

答案 0 :(得分:1)

您通过向其提供整个getopt来让sys.argv感到困惑,因为"helloWorld.py"需要参数的列表。它立即看到文字 temp, args = getopt.getopt(sys.argv[1:], shortForm, longForm) (它不能作为getopt参数进行解析)并假设它已经命中了它的参数列表的末尾。你想跳过第一个参数,因为它是程序名。

import React from 'react';
import axios from 'axios';

export class viewDetailPP53 extends React.Component {
    constructor(props) {
        super(props);
        this.state = { count : [] };        
    }

    componentDidMount(){
        var self = this;
        axios.get('http://pp53.azurewebsites.net/pp53service.svc/viewprovincelist')
        .then(function (results) {
            self.setState({ count: results.data });
        })
        .catch(function (error) {
            console.log(error);
        });
    }

    render() { 
        return(
            <div>
                <table>
                    <thead>
                        <tr>
                            <th>column 1</th>
                            <th>column 2</th>
                        </tr>          
                    </thead>
                    <tbody>
                        {this.state.count.map((a, i) => <TableRow key = {i} count = {a} />)}
                    </tbody>
                </table>
            </div>
        );
    }
}

class TableRow extends React.Component {
   render() {
      return (
         <tr>
            <td>{this.props.count.idProvince}</td>
            <td>{this.props.count.province}</td>
         </tr>
      );
   }
}