Tag: python

你如何在Python中使用省略号切片语法?

这出现在Python的隐藏function ,但我看不到很好的文档或例子,解释如何function的作品。

如何将整数转换为Python中最短的url安全string?

我想要在URL中表示一个整数的最短的方式。 例如,11234可以用hex缩写为“2be2”。 由于base64使用的是64位字符编码,所以应该可以使用甚至比hex更less的字符来表示base64中的整数。 问题是我无法弄清楚使用Python将整数转换为base64(以及再次返回)的最简洁的方法。 base64模块有处理字节串的方法 – 所以也许一个解决scheme是将一个整数转换为它的二进制表示forms作为一个Pythonstring…但我不知道如何做到这一点。

在Python中使用代码库时如何引用资源的相对path

我们正在使用一个代码库,它既可以部署到Windows,也可以在Linux上 – 有时在不同的目录中。 项目中的某个模块应该如何引用项目中的非Python资源之一(CSV文件等)? 如果我们做这样的事情: thefile=open('test.csv') 要么: thefile=open('../somedirectory/test.csv') 它只有在脚本从一个特定的目录或目录的一个子集运行时才有效。 我想要做的是这样的: path=getBasePathOfProject()+'/somedirectory/test.csv' thefile=open(path) 这是正确的吗? 可能吗?

获取“加载MySQLdb模块时出错:没有名为MySQLdb的模块” – 尝试以前发布的解决scheme

对于OSX 10.6用户来说,这是一个非常讨论的问题,但是我一直无法find可行的解决scheme。 这是我的设置: Python 2.6.1 64位Django 1.2.1 MySQL 5.1.47 osx10.6 64位 我用–no-site-packages创build了一个virtualenvwrapper,然后安装了Django。 当我激活virtualenv并运行python manage.py syncdb时,我得到这个错误: Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager utility.execute() File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 257, in fetch_command klass = load_command_class(app_name, subcommand) File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, […]

Python中的open()不会创build文件,如果它不存在

如果文件存在,或者如果不存在,将文件打开为读/写的最佳方式是什么?然后创build并以读/写方式打开文件? 从我读的file = open('myfile.dat', 'rw')应该这样做,对吧? 它不适合我(Python 2.6.2),我想知道是否是版本问题,或不应该这样或那样的工作。 底线是,我只需要一个问题的解决scheme。 我对其他的东西很好奇,但是我需要的只是做开幕式的一个好方法。 更新:封闭的目录是可写的用户和组,而不是其他(我在Linux系统…所以权限775换句话说),确切的错误是: IOError:没有这样的文件或目录。

Python Anaconda – 如何安全地卸载

我在Mac(OS小牛)上安装了Python Anaconda。 我想在我的Mac上恢复到默认的Python版本。 什么是最好的方法来做到这一点? 我应该删除~/anaconda目录吗? 是否需要其他更改? 目前,当我运行which python我得到这个path: /Users/username/anaconda/bin/python

如何在requirements.txt中声明一个直接的github源文件

我已经使用该命令安装了一个库 pip install git+git://github.com/mozilla/elasticutils.git 它直接从Github仓库安装它。 这工作正常,我想在我的requirements.txt有依赖。 我看过这样的其他门票,但这并没有解决我的问题。 如果我把类似的东西 -f git+git://github.com/mozilla/elasticutils.git elasticutils==0.7.dev 在requirements.txt文件中, pip install -r requirements.txt导致以下输出: Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20)) Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: ) No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20)) 需求文件的文档没有提到使用git+git协议说明符的链接,所以也许这只是不被支持。 有没有人有我的问题的解决scheme?

UnicodeDecodeError:'utf8'编解码器无法解码字节0x9c

我有一个应该从客户端接收UTF-8有效字符的套接字服务器。 问题是一些客户端(主要是黑客)正在发送所有错误的数据。 我可以很容易区分真正的客户端,但是我正在logging所有发送的数据,以便日后分析。 有时我会得到像这样的字符œ导致UnicodeDecodeError错误。 我需要能够使stringUTF-8有或没有这些字符。 更新: 对于我的特殊情况,套接字服务是MTA,因此我只希望接收ASCII命令,例如: EHLO example.com MAIL FROM: <john.doe@example.com> … 我在JSON中logging所有这一切。 然后一些没有好意的人决定出售各种垃圾。 这就是为什么对于我的具体情况,剥离非ASCII字符是完全正确的。

在Python中修剪一个string

如何从Python中的string中删除前导空格和尾部空格? 例如: " Hello " –> "Hello" " Hello" –> "Hello" "Hello " –> "Hello" "Bob has a cat" –> "Bob has a cat"

Python如果x不是None或者如果不是x就是None?

我一直认为, if not x is None版本更清晰,但if x is not None ,Google的风格指南和PEP-8都会使用。 是否有任何微小的performance差异(我假设不),是否有任何情况下,一个真的不适合(使另一个明显的赢家我的约定)? *我指的是任何单身人士,而不是None 。 比较单例如None。 使用是或不是。