在ide中创建的ini的配置文件均能正常使用,默认使用的都是utf-8的编码方式,但是不使用到ide时

双击打开出现的乱码是因为系统使用的是gbk的编码方式,所以导致我在ide里面创建的配置文件,不在ide中来读取就会出现失败的情况

1.在ide中当脚本加入#coding:utf-8,那么创建的文件默认编码方式就是utf-8,那么我在使用到configparser读取的时候就需要加上encoding=“utf-8”,来读取

若不加则是使用的gbk的方式,那么就报错

2.若我脚本使用#coding:utf-8,打包成exe,则显示会乱码,因为全局使用的是utf-8,系统是gbk,当我将#coding:utf-8改为gbk,那么在读取的时候就不能够加encoding=“utf-8”来读取,否则报错

下面是一个打包成exe程序是使用的模板

#coding:gbk

import paramiko
from configparser import ConfigParser
import os
class Configinfo():

    def __init__(self,config_file):
        config_info = """[CONFIG] #SSH的ip,端口,账号,密码定义
host=配置你的ip
port=配置你的port
username=账号
password=密码"""

        if not os.path.isfile('test.ini'):
            with open('test.ini','a') as f:
                f.write(config_info)
                print '配置文件已生成,请修改配置'

        else:print '配置文件已存在'
        raw_input('回车继续')
        config = ConfigParser()
        config.read(config_file)
        try:
            self.host = config.get('CONFIG','host')
            self.port = config.get('CONFIG','port')
            self.username = config.get('CONFIG','username')
            self.password = config.get('CONFIG','password')
        except Exception as e:
            print '读取发生错误:%s'%e
            exit()

    def get_host(self):
        return self.host

    def get_port(self):
        return self.port

    def get_username(self):
        return self.username

    def get_password(self):
        return self.password

def ssh_host(info):
    host,port,username,password = info
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host,int(port),username=username,password=password)
    a,s,d = ssh.exec_command("ls /")
    out = s.read()
    print out

if __name__ == '__main__':
    info = Configinfo('test.ini')
    info = info.get_host(),info.get_port(),info.get_username(),info.get_password()
    ssh_host(info)