我遇到的问题是当我尝试加载pickle对象时.我尝试过使用两者pickle.loads
,pickle.load
结果如下:
pickle.loads - pickle.loads
pickle.load - pickle.load
有谁能告诉我在这个过程中我做错了什么?谢谢,这是我的代码:
elif str(parser) == 'SwissWithdrawn_Parser':
# swissprot name changes
print('Gathering SwissProt update info...')
cache_hits = 0
cache_misses = 0
files = set()
for f in os.listdir('out/cache/'):
if os.path.isfile('out/cache/'+f):
files.add(f)
for name in sp_lost_names:
cached = False
url = 'http://www.uniprot.org/uniprot/?query=mnemonic%3a'+name+ \
'+active%3ayes&format=tab&columns=entry%20name'
hashed_url = str(hash(url))
################### For Testing Only - use cache ##################
if hashed_url in files:
cached = True
cache_hits += 1
content = pickle.loads('out/cache/' +hashed_url) # …
Run Code Online (Sandbox Code Playgroud) 这是来自SICP的书,我相信很多人都熟悉这本书.这是本书的早期例子,但我觉得这是一个非常重要的概念,我无法理解.这里是:
(define (cons x y)
(define (dispatch m)
(cond ((= m 0) x)
((= m 1) y)
(else (error "Argument not 0 or 1 - CONS" m))))
dispatch)
(define (car z) (z 0))
(define (cdr z) (z 1))
Run Code Online (Sandbox Code Playgroud)
所以在这里我理解car
并且cdr
正在定义范围内cons
,并且我得到它们分别将一些参数映射z
到1和0(参数z
是一些cons
).但是我说我打电话(cons 3 4)
......当我们立即进入这个内部过程dispatch
并且m
我们还没有指定一些参数时,如何评估参数3和4 ?而且,更重要的是,返回的重点是dispatch
什么?我根本没有真正得到那个部分.任何帮助表示赞赏,谢谢!
我试图在我的README.md中创建链接,使用相对路径链接到示例代码,而不是我现在使用的绝对路径.例如,在markdown文件中,如果我使用它:
[someLabel](https://github.com/username/repoName/somePathTo/myExampleCode)
Run Code Online (Sandbox Code Playgroud)
它没有问题.但是我想用这样的东西把它连接起来:
[someLabel](username/repoName/somePathTo/myExampleCode)
Run Code Online (Sandbox Code Playgroud)
这没有链接,因为它给了我'找不到404错误.有没有办法使用相对路径将我在Github上的示例链接到我的README?
我在这里看到了一些解决方案,如果它超过80个字符,它将突出显示整行,并且line-wrap
一旦该行变得大于80,还要做一次.我想要做的是编辑我的.emacs
文件,以便任何超过80的字符具有不同的背景.因此前80个字符将具有我当前的emacs背景,然后字符> 80将具有黑色背景说.有人能指出我正确的方向吗?谢谢!
在我的Emacs 23编辑器的底部,我注意到Emacs知道我在一个受版本控制的目录中工作,该版本控制系统是什么,以及我目前在哪个分支.太酷了!但是说我在主分支上,从命令行我做了一个git commit
,接着是一个git checkout <branch>
.Emacs仍然显示我在主分支上.如何刷新Emacs以便它反映我当前所在的分支而不关闭所有缓冲区并重新启动它?
令人惊讶的是,我还没有在这里找到这个问题的直截了当的答案.我还在学习Linux.假设我已经将zip文件下载到我的下载文件夹中.现在,我想将它移动到受保护的文件夹,例如/ opts或/ var.是否有一个很好的命令都sudo move
和unzip
文件的地方,我需要它去?
我filter
在 Python3 中使用了一个 lambda 函数。这是我的功能:
affy_reader = csv.DictReader(filter(lambda row:
not row[0].startswith('#') and
str(row[0]).isdigit(),
file_pointer),
delimiter='\t',
fieldnames=affy_column_headers)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以row
在这个 lambda 函数中打印 的值?我想我需要这样做,因为row
仅在 lambda 范围内。例如,如果这是一个 LISP Lambda 程序,我相信我可以做这样的事情:
affy_reader = csv.DictReader(filter(lambda row: print(row)
not row[0].startswith('#') and
str(row[0]).isdigit(),
file_pointer),
delimiter='\t',
fieldnames=affy_column_headers)
Run Code Online (Sandbox Code Playgroud)
因为print()
是在线读取和执行的。Python中有什么方法可以做到这一点吗?或者如果没有,我看到这个值的好方法是什么?谢谢!
*我意识到我的“LISP”示例是 Python 而不是 LISP。我只是想进一步说明我正在尝试做什么。
我试图向服务器发出http请求并检查我得到的内容.但是,当我尝试使用HTTPResponse object
with ipdb
,我不断得到*** Oldest frame
而且我无法运行我应该能够运行的对象上的任何函数.这是用于获取的代码块和ipdb
输出:
代码块:
for acc in sp_lost:
url = 'http://www.uniprot.org/uniprot/?query=mnemonic%3a'+acc+'+active%3ayes&format=tab&columns=entry%20name'
u = urllib.request.urlopen(url)
ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
ipdb输出:
ipdb> url
'http://www.uniprot.org/uniprot/?query=mnemonic%3aSPATL_MOUSE+active%3ayes&format=tab&columns=entry%20name'
ipdb> u
*** Oldest frame
ipdb> str(u)
'<http.client.HTTPResponse object at 0xe58e2d0>'
ipdb> type(u)
<class 'http.client.HTTPResponse'>
ipdb> u.url
*** Oldest frame
ipdb> u.url() # <-- unable to run url() on object...?
*** Oldest frame
ipdb>
Run Code Online (Sandbox Code Playgroud)
这是什么*** Oldest frame
意思,我怎样才能将这个对象变成更有用的东西,我可以运行相应的函数?
通常,执行以下代码会将对象pickle到我的current
目录中的文件:
fp = open('somefile.txt', 'wb')
pickle.dump(object, fp)
Run Code Online (Sandbox Code Playgroud)
如何将输出重定向pickle.dump
到其他目录?
我使用安装了ipdbpip
,但我仍然得到
ImportError: No module named ipdb
.
我是否必须做其他事情才能引入这个模块?当然,我import ipdb
也在我的文件的顶部。我的想法是:我安装了 Python 2.7 和 Python 3。Pip 安装ipdb
到 Python 2.7 目录,但我正在运行的 Python 模块使用的是 Python 3。我认为这是问题所在,但我该如何解决它,以便ipdb
可以与我的 Python 3 模块一起使用?谢谢!