xshell换行导致python输入异常

来源:互联网 发布:族谱制作软件 编辑:程序博客网 时间:2024/06/06 09:36

在xshell客户端下远程登录linux服务器,做如下操作,python 版本 2.7

#!/usr/bin/env python

vi ip.py

from IPy import IP

ip_1 = raw_input("please input ip: ")
ip = IP('192.168.3.0/28')
ip1 = IP(ip_1)
if ip1 in ip:
    print ip1,'is in',ip
else:

    print ip1,'is not in',ip

##############################################

运行命令:python ip.py

运行结果:

please input ip: 192.168.3.1

Traceback (most recent call last):
  File "ip.py", line 5, in <module>
    ip1 = IP(ip_1)
  File "/usr/local/python27/lib/python2.7/site-packages/IPy.py", line 246, in __init__
    (self.ip, parsedVersion) = parseAddress(ip)
  File "/usr/local/python27/lib/python2.7/site-packages/IPy.py", line 1431, in parseAddress
    raise ValueError("IP Address format was invalid: %s" % ipstr)
ValueError: IP Address format was invalid:


网上查了很多相关资料都没找到答案,最后发现在我输入ip+回车后,后面居然还空了一行,于是怀疑跟linux下换行有关系,于是特殊查了一些换行下的相关材料(具体见下面链接附上)

原因:xshell下默认换行是CR+LF,即回车+换行,即\r+\n,但在linux中只需要\n即可,进而导致ip_1多接收了一些字符,进而报错。

解决方案:打开xshell,选择“属性”-->"终端"-->"VT模式"-->“New Line Mode(NLM)”选项的沟去掉,重开一下xshell窗口


win与linux下回车换行的差别还是挺大,详细可见如下相关链接:

http://blog.csdn.net/zollty/article/details/6771858

https://my.oschina.net/u/225373/blog/541889

 

原创粉丝点击