Tag: python 2.x

Python 2 CSV编写器在Windows上产生错误的行结束符

根据其文档, csv.writer默认使用“\ r \ n”作为行列式。 import csv with open("test.csv", "w") as f: writer = csv.writer(f) rows = [(0,1,2,3,4), (-0,-1,-2,-3,-4), ("a","b","c","d","e"), ("A","B","C","D","E")] print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n") writer.writerows(rows) print writer.dialect.lineterminator.replace("\r", "\\r").replace("\n", "\\n") 这打印 \r\n \r\n 如预期。 但是,创build的csv文件使用了终结符'\ r \ r \ n' 0,1,2,3,4 0,-1,-2,-3,-4 a,b,c,d,e A,B,C,D,E 这是一个错误,或者在我的csv.writer的使用有什么问题吗? Python版本: 基于Python 2.6.2的ActivePython 2.6.2.2(ActiveState Software Inc.)(r262:71600,2009年4月21日,15:05:37)[win32上的MSC v.1500 32位(Intel)] 在Windows Vista上

在Python中,<>是什么意思?

我试图在Python 3.3中使用一个旧的库(从2003年开始!)。 当我导入它时,Python会抛出一个错误,因为源文件中有<>符号,例如: if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s": … 我想这是一个现在被放弃的语言标志。 究竟是什么意思,我应该用哪个(更近的)标志来代替?

如何编写尽可能与Python 3.x兼容的Python 2.x?

在Python 2.x中包含Python 3.x特性的方法有很多,所以将来Python 2.x脚本的代码很容易转换成Python 3.x。 其中一个例子是用print()函数replaceprint语句: >>> from __future__ import print_function 有什么清单或资源可以给出一些想法如何使Python 2.x代码尽可能接近Python 3.x? 你能举出一些其他有用的导入或定义的例子, 使得Python 2.x的外观和行为更像Python 3.x吗? 让我们假设我们有最新的Python 2.x(目前2.7.2,我相信)在我们的处置。

如何将Unicode转换为大写打印?

我有这个: >>> print 'example' example >>> print 'exámple' exámple >>> print 'exámple'.upper() EXáMPLE 我需要做什么来打印: EXÁMPLE ('a'用来表示重音,但用大写字母。) 我正在使用Python 2.6。

我怎样才能表示未使用的函数参数?

当“解构”一个元组时,我可以用_来表示我不感兴趣的元组元素,例如 >>> a,_,_ = (1,2,3) >>> a 1 使用Python 2.x,我怎样才能expression与函数参数相同? 我试图使用下划线: >>> def f(a,_,_): return a … File "<stdin>", line 1 SyntaxError: duplicate argument '_' in function definition 我也试图完全忽略这个论点: >>> def f(a,,): return a File "<stdin>", line 1 def f(a,,): return a ^ SyntaxError: invalid syntax 还有另外一种方法来实现吗?

在Python 3和2中工作的Unicode文字

所以我有一个Python脚本,我只是为了方便起见而使用python 3.2和2.7。 有没有一种方法可以让Unicode字符在这两个工作? 例如 #coding: utf-8 whatever = 'שלום' 上面的代码需要在python 2.x(u“)和python 3.x中使用一个unicodestring,这个”u“会导致语法错误。 无论如何,我find了答案,我需要的只是: from __future__ import unicode_literals 我仍然发布这个问题,因为https://meta.stackexchange.com/questions/49922/should-i-continue-adding-a-question-if-i-have-found-the-answer-myself 对于好奇,这是我正在工作: http : //code.google.com/p/pytitle/

如何防止C共享库打印在Python的标准输出?

我使用一个python库导入一个打印在标准输出上的C共享库。 我想要一个干净的输出,以便使用pipe道或redirect文件。 打印是在Python之外的共享库中完成的。 一开始,我的做法是: # file: test.py import os from ctypes import * from tempfile import mktemp libc = CDLL("libc.so.6") print # That's here on purpose, otherwise hello word is always printed tempfile = open(mktemp(),'w') savestdout = os.dup(1) os.close(1) if os.dup(tempfile.fileno()) != 1: assert False, "couldn't redirect stdout – dup() error" # let's pretend this […]

带有标志的Python re.sub不会replace所有的事件

Python文档说: re.MULTILINE:指定时,模式字符'^'匹配string的开头和每行的开头(紧跟在每一个新行之后)…默认情况下,'^'只匹配string的开头… 那么当我得到以下意想不到的结果时发生了什么? >>> import re >>> s = """// The quick brown fox. … // Jumped over the lazy dog.""" >>> re.sub('^//', '', s, re.MULTILINE) ' The quick brown fox.\n// Jumped over the lazy dog.'

覆盖自定义类的bool()

所有我想要的是为bool(myInstance)返回False(和myInstance评估为False时,如条件,如果/ / /和。我知道如何覆盖>,<,=) 我试过这个: class test: def __bool__(self): return False myInst = test() print bool(myInst) #prints "True" print myInst.__bool__() #prints "False" 有什么build议么? (我正在使用Python 2.6)

Django 1.7 – 如何取消“(1_6.W001)某些项目testing可能无法按预期执行。

我有一个Django应用程序,它有最初用Django 1.2编写的部分,应用程序一直升级到1.7。 升级到1.7后,我从python manage.py check得到以下警告: System check identified some issues: WARNINGS: ?: (1_6.W001) Some project unittests may not execute as expected. HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See […]