小编Jon*_*nts的帖子

TypeError:exception必须是旧式类或派生自BaseException,而不是str

我是OS X 10.8上运行2.7.6的Python初学者,添加了numpy和pyobjc.这是我正在尝试运行的脚本:

from __future__ import with_statement
from Foundation import NSMutableDictionary, NSUserDefaults, NSCFArray, objc
import numpy as np
from copy import copy
import os
import re

domainName = "org.mworks-project.MWClient"

outFile = os.path.expanduser(os.path.join('~/Desktop','org.Behavior.MWClientSavedVars.plist'))
keyNames = [ 
  'MATLAB client window - selected variables',
  'MATLAB client window - MATLAB .m file',
  'recentPythonScripts' ]

homedir = os.getenv('HOME')

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

def subStr(inStr):
    return re.sub('^%s'%homedir, '$HOME', inStr)

def replaceUserdirWithStr(inObj):
    if type(inObj) == str or type(inObj) == objc.pyobjc_unicode:
        return subStr(inObj)
    elif isinstance(inObj, NSCFArray):
        for i in range(len(inObj)):
            # …
Run Code Online (Sandbox Code Playgroud)

python exception

1
推荐指数
1
解决办法
5639
查看次数

Python - 如何一次读取一个文件?

我正在学习python文件处理.我尝试使用此代码一次读取一个字符

f = open('test.dat', 'r')

while (ch=f.read(1)):
    print ch
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用

这是错误消息

C:\Python27\python.exe "C:/Users/X/PycharmProjects/Learning Python/01.py"
File "C:/Users/X/PycharmProjects/Learning Python/01.py", line 4
while (ch=f.read(1)):
         ^
SyntaxError: invalid syntax

Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

python file-handling python-2.7

1
推荐指数
2
解决办法
1万
查看次数

使用分隔符打印数组中的元素

我是 Python 新手,并且一直坚持打印由分隔符分隔的数组元素。我的数组由 60 000 奇数行组成,每行 26 个元素,其中一些元素仅包含数字,而其他元素则包含各种字符,包括特殊字符。例子:

a[0] = [abc,123,a1b2c3,*wewqe,...] 
a[1] = [098i,qwerty,123qwe,xx-u,...]
Run Code Online (Sandbox Code Playgroud)

我希望输出是(最后一个元素后面没有“|”并且每一行都在自己的行上:

abc|123|a1b2c3|*wewqe,...
098i|qwerty|123qwe|xx-u,...
Run Code Online (Sandbox Code Playgroud)

我已尝试以下方法,但它们不起作用:

for row in results :
    length = len(row)
    print("")#throw in a new line
    print ("Number of elements: " + str(length))
    print '|'.join((str(row)))
Run Code Online (Sandbox Code Playgroud)

和这个:

for row in results :
    length = len(row)
    print("")#throw in a new line
    print ("Number of elements: " + str(length))
    for item in row:
            print '|'.join(str(item))
Run Code Online (Sandbox Code Playgroud)

和这个:

 for row in results :
    length = len(row)
    print("")#throw in a new …
Run Code Online (Sandbox Code Playgroud)

python arrays

1
推荐指数
1
解决办法
8660
查看次数

递归函数运行时检查失败

当我使用运行时检查编译程序时,出现以下错误(我不知道为什么):

ifort -check all test.f90 -o test
./test
forrtl: severe (193): Run-Time Check Failure. The variable 'my_sum$2$_2' is being used without being defined
Image        PC                     Routine           Line           Source
sum          0000000000403098       Unknown              Unknown     Unknown 
sum          0000000000403098       Unknown              Unknown     Unknown 
sum          0000000000403098       Unknown              Unknown     Unknown 
sum          0000000000403098       Unknown              Unknown     Unknown 
.
.
.
sum          0000000000403098       Unknown              Unknown     Unknown 
sum          0000000000402EAF       Unknown              Unknown     Unknown 
sum          0000000000402DE6       Unknown              Unknown     Unknown 
libc.so.6    00007F7FEB268BE5       Unknown              Unknown     Unknown 
sum          0000000000402CD9       Unknown              Unknown     Unknown 
Run Code Online (Sandbox Code Playgroud)

代码是:

program test

   implicit …
Run Code Online (Sandbox Code Playgroud)

recursion fortran runtime intel-fortran

1
推荐指数
1
解决办法
945
查看次数

Python: - 从电子邮件列表中拆分电子邮件(逗号,空格分隔)

我的意见是

email_list = 

"mail1@mail.com,mail2@mail.com, mail3@mail.com mail4@mail.com 
mail5@mail.com"
Run Code Online (Sandbox Code Playgroud)

例外输出是

['mail1@mail.com', 'mail2@mail.com', 'mail3@mail.com', 'mail4@mail.com', 'mail5@mail.com']
Run Code Online (Sandbox Code Playgroud)

我试过这个方法,但它只会拆分(,)分开.请告诉我.

output = email_list.split(',') 
Run Code Online (Sandbox Code Playgroud)

提前致谢...

python string list

1
推荐指数
1
解决办法
1158
查看次数

zlib TypeError:需要一个类似字节的对象,而不是'str'

我使用此代码来编码和压缩文本。但是它不能正常工作:

Traceback (most recent call last): File "E:\SOUND.py", line 114, in <module>
unhexsring = str(zlib.decompress(unhexsring).encode('utf8'))
TypeError: a bytes-like object is required, not 'str' 
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

import zlib,gzip

def str2hex(s):
    return binascii.hexlify(bytes(str.encode(s)))


def hex2str(h):
    return binascii.unhexlify(h)

hexstring = input()
if len(hexstring) > 200:
    hexstring = str(zlib.compress(hexstring.encode('utf-8')))
    print(hexstring)
hexstring = str2hex(hexstring)
ph = str(hexstring.decode('utf-8'))
print(ph)

#decompressing text
unhexsring = hex2str(hexstring).decode('utf8')
if 'x' in str(unhexsring):
    print('compressed')
    unhexsring = str(zlib.decompress(unhexsring).encode('utf8'))
print(unhexsring)
Run Code Online (Sandbox Code Playgroud)

此代码不会解压缩zlib压缩的文本。

因此编码工作良好。

我的麻烦是当我获取编码的字符串并对其进行压缩时,我无法对其进行解压缩。应该如何运作:

1>s = input('some text')
2>if len(s) > 200: s = str(zlib.compress(s.encode('utf-8'))) …
Run Code Online (Sandbox Code Playgroud)

python zlib python-3.x

1
推荐指数
1
解决办法
2909
查看次数

更换价值不起作用?

所以我有一个try/except块设置,它将根据某些条件通过数据库:

try:
    for searchnumber in itertools.count(0):
        print searchnumber
        c.execute("""SELECT words from searchterms where onstate = 1 AND progid = %d;""") % searchnumber
        searchterms = (c.fetchall())
        searchterms = [",".join(x) for x in searchterms]
        print searchterms
except:
    pass
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它不是在progid上迭代,事实上,它甚至没有为它分配第一个值(0).为什么会这样?据我所知,%d应该用searchnumber的整数值代替

python string python-itertools

0
推荐指数
2
解决办法
87
查看次数

在python中使用re.sub()后删除单引号

用字符'^'替换字符串中的所有单词字符后,使用re.sub("\w", "^" , stringorphrase)我留下:

>>> '^^^ ^^ ^^^^'
Run Code Online (Sandbox Code Playgroud)

有没有办法删除单引号,使它看起来更干净?

>>> ^^^ ^^ ^^^^
Run Code Online (Sandbox Code Playgroud)

python regex

0
推荐指数
1
解决办法
1929
查看次数

使用IMAPClient如何查看发件人地址?

使用IMAPClient如何查看邮件正文和发件人电子邮件地址?

server = IMAPClient(imap_server, use_uid=True, ssl=ssl)
server.login(imap_user, imap_password)

print 'login successful'

select_info = server.select_folder('INBOX')
print '%d messages in INBOX' % select_info['EXISTS']

messages = server.search(['NOT DELETED'])
print "%d messages that aren't deleted" % len(messages)

print
print "Messages:"
response = server.fetch(messages, ['FLAGS', 'RFC822.SIZE'])
for msgid, data in response.iteritems():
    print '   ID %d: %d bytes, flags=%s' % (msgid,
                                            data['RFC822.SIZE'],
                                            data['FLAGS'])
Run Code Online (Sandbox Code Playgroud)

python imaplib imapclient

0
推荐指数
1
解决办法
3522
查看次数

__init__和类变量的设置

我在理解类中的继承方面遇到了一些麻烦,并想知道为什么这些python代码不起作用,有没有人可以告诉我这里出了什么问题?

## Animal is-a object 
class Animal(object):
    def __init__(self, name, sound):
        self.implimented = False
        self.name = name
        self.sound = sound

    def speak(self):
        if self.implimented == True:
            print "Sound: ", self.sound

    def animal_name(self):
        if self.implimented == True:
            print "Name: ", self.name



## Dog is-a Animal
class Dog(Animal):

    def __init__(self):
        self.implimented = True
        name = "Dog"
        sound = "Woof"

mark = Dog(Animal)

mark.animal_name()
mark.speak()
Run Code Online (Sandbox Code Playgroud)

这是通过终端的输出

Traceback (most recent call last):
  File "/private/var/folders/nd/4r8kqczj19j1yk8n59f1pmp80000gn/T/Cleanup At Startup/ex41-376235301.968.py", line 26, in <module>
    mark = Dog(Animal)
TypeError: …
Run Code Online (Sandbox Code Playgroud)

python variables inheritance

0
推荐指数
2
解决办法
605
查看次数