胜博发游戏官网Python中FTP 上传出现10060错误,怎么解决?

( 胜博发游戏官网 )

#!/usr/bin/python
#-*- coding: utf-8 -*-

from ftplib import FTP

def ftpconnect():
    ftp_server = 'XXXXXXX'
    port=21
    username = 'anonymous'
    password = ''
    ftp=FTP()
    ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
    ftp.connect(ftp_server,port) #连接
    ftp.login(username,password) #登录,如果匿名登录则用空串代替即可
    return ftp


def uploadfile():

    remotepath = "/"
    ftp = ftpconnect()
    bufsize = 1024
    localpath = 'd:\\zh.jpg'
    fp = open(localpath,'rb')
    ftp.storbinary('STOR '+ remotepath ,fp,bufsize) #上传文件
    #ftp.set_debuglevel(0)
    fp.close() #关闭文件
    ftp.quit()
    print 'Success'


if __name__=='__main__':
     uploadfile()

1.连接类型
2.FTP服务器故障
3.端口

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

胜博发游戏官网Python:求命令行参数解析相关模块推荐

( 胜博发游戏官网 )

python2.7之前有optparse,python2.7后有Argparse
以上2个都有用过,但个人感觉不是很灵活(还是我使用的问题?)


对于以下这种需求,不知道有没有合适的模块推荐呢?
1. 运行py程序后,进入程序
2. 可以自定义选择菜单,比如:

1).主菜单1
2).主菜单2
3).主菜单3

当选择主菜单1的时候,又有如下子菜单供选择

1).子菜单1-1
2).子菜单1-2
3).子菜单1-3

注:对于optparseArgparse模块,只能提供一次列出所有可供使用的参数列表,然后供组合使用吧。
比如:
python test.py -menu1 -submenu1-1
而我想这样执行:

python test.py (第一步)
显示主清单列表
>menu1(第二步)
显示子清单列表
>submenu1-1(第三步)
执行相关功能

使用cmd模块,算是完满的解决了以上需求,关于如何显示多级菜单,可以借鉴下这个:How to do a multi-level CLI in Python?

试试 cmd 模块吧。

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

胜博发游戏官网vim ultisnips 如何配置,安装后发现不能正常补全。

( 胜博发游戏官网 )

ultisnips 安装使用的 是Vundle

Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'

下面是我的配置

let g:UltiSnipsExpandTrigger = "<c-j>"
let g:UltiSnipsJumpForwardTrigger = "<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"

但是使用时却不能根据文件自动补全

.vim 目录结构为

├── bundle
│   ├── Emmet.vim
│   ├── Vundle.vim
│   ├── ultisnips
│   │   ├── COPYING.txt
│   │   ├── ChangeLog
│   │   ├── README.md
│   │   ├── UltiSnips
│   │   ├── ...
│   │   ├── syntax
│   │   └── utils
│   └── vim-snippets
│       ├── LICENSE
│       ├── ...
│       ├── UltiSnips
│       └── snippets

谢谢

这个插件很简单,给你看我的设置好了:

NeoBundle 'SirVer/ultisnips'
let g:UltiSnipsSnippetDirectories=['UltiSnips']
let g:UltiSnipsSnippetsDir = '~/.vim/UltiSnips'
let g:UltiSnipsExpandTrigger = '<Tab>'
let g:UltiSnipsListSnippets = '<C-Tab>'
let g:UltiSnipsJumpForwardTrigger = '<Tab>'
let g:UltiSnipsJumpBackwardTrigger = '<S-Tab>'

哦,对了,我想起来一件事情。g:UltiSnipsSnippetDirectories 选项的值必须是文件夹名称(可以是多个),并且这个(些)文件夹必须存在于 runtimepath 中的某一项之下。比如说 ~/.vim 就是 runtimepath 中的一项。默认的文件夹 UltiSnips 会自动创建,如果你换了,那你必须保证这个文件夹是存在的。我看你换成了 snippets,如果你事先安装过 SnipMate,那么 snippets 才会存在,否则你得自行创建。g:UltiSnipsSnippetDirectories 选项的作用是指定 UltiSnips 的搜索路径,你找不到 snippets 的原因大概就是这样。

解释为什么错了真的很累,换个角度告诉你,如果你做对了是什么样子的:

  1. let g:UltiSnipsSnippetsDir = '~/.vim/UltiSnips' 这个设置会确保 snippets 都在指定的文件夹内(你自己编辑的也会保存在这里,如果你用了第三方的并且还要进一步编辑,你得确保都复制到了这里)

  2. let g:UltiSnipsSnippetDirectories = ['UltiSnips'] 这个设置会告诉 UltiSnips 去哪儿找 snippets,可以是多个地方,所以如果你用第三方的 snippets,和上一个设置不在一起的话,你得把它们的路径放这里。要注意的是,这个数组里的每一项都必须在 runtimepath 其中的一项之下,所以不确定的话,先看看 runtimepath 的值。

  3. 若上述两点都做对了,那么在任意类型文件打开的前提下输入 :UltiSnipsEdit 都会打开对应类型的 snippets,能不能用,哪些能用,一看便知。

有可能是因为你编译 vim 时同时开启了 python2 和 python3 的支持,在 .vimrc 设置一下插件SirVer/ultisnips 使用的 python 版本即可。

let g:UltiSnipsUsePythonVersion = 2

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

SBF胜博发娱乐老虎机python 调用C++扩展

( SBF胜博发娱乐老虎机 )

对方只提供了.so文件和.h 头文件定义。
python 如何才能够提供更好的数据封装?
swig? or cython?
如何才能变成包扩展。

你看看这个

Cython的官方文档里面不是有现成的么,请见 http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

胜博发游戏官网Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 有区别吗?

( 胜博发游戏官网 )

许多 python 文件的头部都会写上:

#!/usr/bin/python

或者

#!/usr/bin/env python

这行是拿来作甚的?有区别吗?好像没有这一行代码也能正常运行啊。

如果你用 python xxoo.py 来运行,那么写不写都没关系,如果要用 ./xxoo.py 那么就必须加这行,这行被称为 shebang, 用来为脚本语言指定解释器.

通常认为用 #!/usr/bin/env python 要比 #!/usr/bin/python 更好,因为 python 解释器有时并不安装在默认路径,例如在 virtualenv 中。

第一种写法:

#!/usr/bin/python

表示写死了就是要 /usr/bin/python 这个目录下 python 来执行你的脚本。

第二种写法:

#!/usr/bin/env

这种写法在你机器上安装了多个版本的python的时候有意义,这样声明的时候,会去取你机器的 PATH 中指定的第一个 python 来执行你的脚本。如果这时候你又配置了虚拟环境的话,那么这样写可以保证脚本会使用你虚拟环境中的 python 来执行。

所以这样看来,只有第二种方法才是正确的写法。

比如你用virtualenv来管理你的python运行环境,就不能直接指定python位置了,要用后一种方式才能用到env里的解释器。

写这行的原因是 当你把py文件直接赋予执行权限去执行 ./yourfile.py 的时候,给文件指定一个解释器。

#!/usr/bin/python 是一般默认的python解释器的路径, 所以这种的就是装在默认位置的不会出问题。

但是 #!/usr/bin/env python 则更加通用一些 会去你的PATH 中寻找python 。

我的理解是要不要把这个.py文件变成一个 类似于 windows平台下的一个可执行文件 (.exe)

一般我们在控制台用 python filename.py 来执行该文件. 但是如果系统已知知道python解释的位置, 可以让前面的python 命令”安静的”放在这个路径里, 那么在控制台就可以直接输入 filename.py 来执行程序了.

当然如果是在un*x系统下还能用

chmod a+x filename.py

你可以理解为env是一个程序.他存放在/usr/bin/这个文件夹下面..他可以去搜索linux环境变量并且如果找到这个程序便启动他…比如启动python就是/usr/bin/env python….
把他放在文件第一行的时候…如果你直接执行这个文件..他会调用这个命令去启动python来解释该文件..

但是如果是/usr/bin/python在第一行的话..就是直接使用python来解释..但是有种情况就是你的python并不在这个路径下面..那么就执行失败了…
比如你是手动编译的python的情况…你将python的执行路径放在环境变量里面就ok了…否则你要在文件中硬编码进去你的路径…那么你的python文件换个系统或者电脑就无法执行了…

这个问题之前 @沙渺 大神已经讲过了 传送门http://segmentfault.com/blog/shamiao/1190000000361999

用python.exe yoursss.py咯,可以不写这行。

前者是限定死的路径,缺点是如果人家没有安装在默认路径里那就不好办了。
后者是调用系统变量一样的东西,比前者更好一点,不过没有绝对。

一般要写#!/usr/bin/env python 这个

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

sbf胜博发娱乐城SOAPpy 如何获得incoming SOAP的XML

( sbf胜博发娱乐城 )

在SOAPpy里面,SOAPpy会将从XML中Parse 出SOAPpy object,然后又转化成Python Object,

我想知道怎么样在client中直接获得原始的xml(设置dumpSOAPIn=1 后stdout print出来的那些XML),想传给一个变量?

(一种可能的方法是将python object 序列化成xml,但担心那样失去一些信息)
谢谢!

貌似有一个叫cpickle的模块吧

(看完/读完)这篇文章有何感想! sbf胜博发娱乐城的分享…

sbf胜博发娱乐城Python里如何在__getitem__语句执行完之后转存

( sbf胜博发娱乐城 )

#import cPickle
#dump_data = ""
#def dump(data):
#    global dump_data
#    dump_data = cPickle.dumps(data)

class A:
    __data = {}
    def __getitem__(self, item):
        return self.__data[item]

    def __setitem__(self, item, value):
        self.__data[item] = value
        #dump(self._data)

a = A()
a["foo"] = {}
#print dump_data
a["foo"]["bar"] = 123
#print dump_data
print a._A__data # {'foo': {'bar': 123}}

目前这样是没有问题的,因为dict是所谓的mutable,__getitem__返回的是__data["foo"]的引用,而不是重新构造一个字典对象(传值)。
但是发生\一种这样的需求:每一次的get/set,但凡发生对__data的修改,都执行一个操作,比如转存到数据库,转存的文件,从网络中发送,等等,总之存取起来不是那么方便,这里用一个dump()来概括。现在去掉被注释的几行代码,问题就发生了:a["foo"]["bar"] = 123时将不会触发dump()
当然我是不愿意改变方式的,谁会愿意用temp = a["foo"]; temp["bar"] = 123; a["foo"]=temp这种接口呢…

因为你a[“foo”]之后就跟你的A没关系了,也就和你的dump没关系了,a[“foo”][“bar”]=xx的时候就没法dump了。
给你的A设置一个同意的dump,然后自己修改了数据之后手动的a.dump(),一下吧。
莫非LZ要的是这种变态代码:

import types

data = {}
def dump():
    print 'dump: %s'%data

class A:
    def __init__(self, d={}):
        self.data = d
        # wrap all dictionary values
        for k,v in self.data.items():
            if  type(v) == types.DictType:
                self.data[k] = A(v)
    def __getitem__(self, name):
        return self.data[name]
    def __setitem__(self, name, value):
        if type(value) == types.DictType:
            # if dictionary, wrap it
            self.data[name] = A(value)
        else:
            self.data[name] = value

        dump()
    def __repr__(self):
        return repr(self.data)

a = A(data)

a["foo"] = {}
a["foo"]["bar"] = 123

a['User1'] = {
    "name":"robin",
    "age":10,
}
a["User1"]["info"]={}
a["User1"]["info"]["address"] = "A block"
a["User1"]["info"]["mobile"] = "110"
a["deepdic"] = {
    1:{
        2:{
            3:{
                4:{
                    5:{
                        6:{
                            7:{
                            }
                        }
                    }
                }
            }
        }
    }
}
a["deepdic"][1][2][3][4][5][6][7]["a"] = "AAA"
a["deepdic"][1][2][3][4][5][6][7]["b"] = "BBB"

dump(self._data) 放在getitem下面

(看完/读完)这篇文章有何感想! sbf胜博发娱乐城的分享…

胜博发游戏官网【新手】Python sever 错误

( 胜博发游戏官网 )

https://coding.net/u/taoche/p/Django/git

代码地址在上面。。

错误提示:

A server error occurred.  Please contact the administrator.

由于是Python 和 Django的新手,所以不知道问题出在什么地方了。所以上来求解答。
感觉各位在有空的时候帮我看看。

拜谢!!!

这个问题已被关闭,原因:

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

SBF胜博发娱乐老虎机Python并发只读,是否有锁?

( SBF胜博发娱乐老虎机 )

python并发同时读一个文件,是否会因为文件锁影响读,如果有的话,该如何避免?

#

我的理解是没有问题,文件锁是用来解决文件同步的,但是只有读,就可以理解为无所谓了。

从概念上说,大家一起读,没人(包括外人)去写的话是不需要锁的。
另外,文件锁是“建议锁”,不是“强制锁”,也就是说,如果一个程序完全无视这个锁,直接打开并读写文件,这个锁不会发挥作用。
但有一点你要注意,file对象本身不能在多线程/进程中安全的共享,如果你需要多个线程/进程读文件,你需要在每个线程/进程中自己打开文件生成file对象,或者,给file对象加个锁,不过这应该不是你想要的。

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

SBF胜博发娱乐老虎机vim 用的是 syntastic 插件,为什么有中文保存的时候就会报这个错误?

( SBF胜博发娱乐老虎机 )

PS:程序运行正常。
请问原因。

不会 Python,所以没法说出个一五一十来,不过同类的问题在 Github 上一搜好几个,看起来这一个比较接近你的错误:

https://github.com/scrooloose/syntastic/issues/1131

如果不行,再搜索一下别的 Issues 吧,个人不太了解 Python,所以无从分辨。

我踩, 原因如下:

  1. 代碼沒貼
  2. Vim version, 不知道
  3. Python version, 知道是3, 不知道是3.X
  4. Syntastic version, 不知道

你讓大家怎麼幫助你?

PS: :SyntasticInfo

该答案已被忽略,原因:

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

SBF胜博发娱乐老虎机浮点数为什么通过 print() 输出后被四舍五入保留俩小数了

( SBF胜博发娱乐老虎机 )

下面这段代码,输出后发生了神奇的事情:

a = 19.949999999999999
print(a)

----------

输出:19.95

我想输出原始的 19.949999999999999 呃。

精度问题,Python内部的浮点数用double类型,典型机器上8个字节,53bit有效位,合十进制有效数字约15位。
你的数字里小数点前后一共有17位有效数字,所以就被四舍五入了。
如果你想表示任意精度的数字,用decimal模块里Decimal类型,比如:

from decimal import Decimal
a=Decimal('19.949999999999999')
print a

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

SBF胜博发娱乐老虎机Tornado如何在response中返回图片?

( SBF胜博发娱乐老虎机 )

小弟初学Tornado,卡在这几天了,请大家解惑。
如题,就是想实现访问一个URL,返回一张图片。类似Flask中send_file的功能
感觉很简单但是一直没找到解决方法…

可以看下web.py 中的代码的

class StaticFileHandler(RequestHandler):
    @gen.coroutine
    def get(self, path, include_body=True):
        #...
        if include_body:
            content = self.get_content(self.absolute_path, start, end)
            if isinstance(content, bytes_type):
                content = [content]
            for chunk in content:
                self.write(chunk)
                yield self.flush()
        #...   

虽然没用过,但是应该就是在response的stream中把文件流写入,之前设置好content-type就行了

静态文件还是Nginx吧,Tornado返回流数据会阻塞线程吧,Tornado是单进程单线程模型,返回图片什么的还是感觉不靠谱

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

胜博发游戏官网像拍拍贷这样的网站需要什么技术

( 胜博发游戏官网 )

之前自己做过私活,后台python(正职是c服务器开发),前段是同学做安卓,没有做pc网站的经历。最近同学做p2p找我入伙,

本人熟悉python框架webpy,业务模型假设也设计完毕,展现到页面上需要什么技术?本人不熟悉js、css、html。。。抑或是改开源的建站代码?

如果自学(全栈开发方向)需要多大成本?还是说找有经验的人(局限于自身产品线,不认识web界面开发者)来做最划算?

PC端要自己fullstack,挺难hold住的,这个网站前端做得蛮不错的,没个四年以上经验的人写不出来的,建议还是找人来做吧

如果需要运维,请联系我

该答案已被忽略,原因:

(看完/读完)这篇文章有何感想! 胜博发游戏官网的分享…

SBF胜博发娱乐老虎机如何只对url中的中文编码

( SBF胜博发娱乐老虎机 )

已经我的url为:http://map.baidu.com/?newmap=1&s=con%26wd%3D阿坝师范高等专科学校%26c%3D185&from=alamap&tpl=mapdots

但是使用urllib中的quote方法编码后的结果为:http%3A//map.baidu.com/%3Fnewmap%3D1%26s%3Dcon%2526wd%253D%E9%98%BF%E5%9D%9D%E5%B8%88%E8%8C%83%E9%AB%98%E7%AD%89%E4%B8%93%E7%A7%91%E5%AD%A6%E6%A0%A1%2526c%253D185%26from%3Dalamap%26tpl%3Dmapdots

即:quote对其他字符也进行了编码。

问:如何只对url中的中文编码?

>>> from urllib.parse import *
>>> url = 'http://map.baidu.com/?newmap=1&s=con%26wd%3D阿坝师范高等专科学校%26c%3D185&from=alamap&tpl=mapdots'
>>> import string
>>> quote(url, safe=string.printable)                                                                                                                  
'http://map.baidu.com/?newmap=1&s=con%26wd%3D%E9%98%BF%E5%9D%9D%E5%B8%88%E8%8C%83%E9%AB%98%E7%AD%89%E4%B8%93%E7%A7%91%E5%AD%A6%E6%A0%A1%26c%3D185&from=alamap&tpl=mapdots'

unquotequote就好了。

import urllib
print urllib.quote_plus( urllib.unquote_plus( "http://map.baidu.com/?newmap=1&s=con%26wd%3D阿坝师范高等专科学校%26c%3D185&from=alamap&tpl=mapdots" ) )

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

sbf胜博发娱乐城python线程问题

( sbf胜博发娱乐城 )

代码:

from threading import Thread, Event
import time


def countdown(n, start_env):
    print("countdown starting!")
    start_env.set()
    while n > 0:
        print("T-minus", n)
        n -= 1
        time.sleep(2)


start_env = Event()


print('Launching Thread-countdown')
t = Thread(target=countdown, args=(10, start_env))
t.start()


start_env.wait()
print("countdown Running..............")
t.join()

输出结果:

Launching Thread-countdown
countdown starting!
T-minus 10
countdown Running..............
T-minus 9
T-minus 8
T-minus 7
T-minus 6
T-minus 5
T-minus 4
T-minus 3
T-minus 2
T-minus 1

我想问:为什么countdown Running 只在T-minus 10后输出一次?

因为你只wait了一次 线程也只有一个 多开点线程然后 wait放循环里就是多次了

刚写完问题就看到一个解释:“我们创建一个事件,让线程等待事件被设置,然后一旦完成设置,事件就被丢弃”
是这样吗?

哥们,你觉得不是输出一次,应该是几次?

(看完/读完)这篇文章有何感想! sbf胜博发娱乐城的分享…

SBF胜博发娱乐老虎机运行scapy里的sr()时,一直报错,像下面那样。

( SBF胜博发娱乐老虎机 )

Traceback (most recent call last):
File “D:\Python27\lib\site-packages\scapy\arch\windows__init__.py”, line 374, in sndrcv

pks.send(p)

File “D:\Python27\lib\site-packages\scapy\arch\pcapdnet.py”, line 250, in send

ifs = dnet.eth(iff)

File “dnet.pyx”, line 112, in dnet.eth.__init__ (./dnet.c:1764)
OSError: No error
INFO: — Error sending packets
Traceback (most recent call last):
File “<console>”, line 1, in <module>
File “D:\Python27\lib\site-packages\scapy\sendrecv.py”, line 317, in sr

a,b=sndrcv(s,x,*args,**kargs)

File “D:\Python27\lib\site-packages\scapy\arch\windows__init__.py”, line 410, in sndrcv

h = r.hashret()

File “D:\Python27\lib\site-packages\scapy\layers\inet.py”, line 371, in hashret

if ( (self.proto == socket.IPPROTO_ICMP)

AttributeError: ‘NoneType’ object has no attribute ‘IPPROTO_ICMP’

(看完/读完)这篇文章有何感想! SBF胜博发娱乐老虎机的分享…

sbf胜博发娱乐城python中或 与 操作的意义。

( sbf胜博发娱乐城 )

不只是 python。 & 和 | 操作有什么意义?
比如:

POLL_NULL = 0x00
POLL_IN = 0x01
POLL_OUT = 0x04
POLL_ERR = 0x08

class Select(object):
    def __init__(self):
        self.read_list = set()
        self.write_list = set()
        self.error_list = set()

    def poll(self,timeout):
        r,w,x = select.select(self.read_list,self.write_list,self.error_list,
                                timeout)
        results = defaultdict(lambda:POLL_NULL)

        for p in [(r, POLL_IN), (w, POLL_OUT),(e,POLL_ERR)]:
            for fd in p[0]:
                results[fd] |= p[1]
        return results.items()

    def register(self,fd,mode):
        if mode & POLL_IN:
            self.read_list.add(fd)
        if mode & POLL_OUT:
            self.write_list.add(fd)
        if mode & POLL_ERR:
            self.error_list.add(fd)

这是节选自shadowsocks中源码部分,results[fd] |= p[1] 还有 mode & POLL_IN 他们的意义在那里? 不可以直接判断吗? 为什么要使用16进制的或 与 操作呢?

节省空间以及运算速度快
用一个字节做到八个字节的事
用一个位操作做到遍历一个八个元素数组的事

(看完/读完)这篇文章有何感想! sbf胜博发娱乐城的分享…

sbf胜博发娱乐城python:前提是用list ,有两个list,比如一个是ll=[1,2,3],另一个是ii=[“1″,”2″,”3”]

( sbf胜博发娱乐城 )

前提是用list ,有两个list,比如一个是ll=[1,2,3],另一个是ii=[“1″,”2″,”3”],有什么方法可以使它们的数据一一对应?

>>> from itertools import izip

>>> d1 = {k: v for k, v in izip(ll, ii)
>>> d1
{1: '1', 2: '2', 3: '3'}

抱歉没看到前提用List,我修改一下:

>>> map_list = [(k, v) for k, v in izip(ll, ii)]
>>> map_list
[(1,'1'), (2,'2'), (3,'3')]

(看完/读完)这篇文章有何感想! sbf胜博发娱乐城的分享…