小编Bre*_*ire的帖子

Android:如何找到assets文件夹的绝对路径?

我需要在我的应用程序中获取assets文件夹的绝对路径,因为我想使用Web服务器提供文件,并且它需要绝对路径.这可能吗?

我原以为可能会有这样的事情:

String rootDir = getAssets().getRootDirectory();
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

任何帮助赞赏,欢呼.

directory android assets path

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

asyncio:是否有可能取消Executor运行的未来?

我想在Executor中使用asyncio调用loop.run_in_executor启动阻塞函数,然后稍后取消它,但这对我来说似乎不起作用.

这是代码:

import asyncio
import time

from concurrent.futures import ThreadPoolExecutor


def blocking_func(seconds_to_block):
    for i in range(seconds_to_block):
        print('blocking {}/{}'.format(i, seconds_to_block))
        time.sleep(1)

    print('done blocking {}'.format(seconds_to_block))


@asyncio.coroutine
def non_blocking_func(seconds):
    for i in range(seconds):
        print('yielding {}/{}'.format(i, seconds))
        yield from asyncio.sleep(1)

    print('done non blocking {}'.format(seconds))


@asyncio.coroutine
def main():
    non_blocking_futures = [non_blocking_func(x) for x in range(1, 4)]
    blocking_future = loop.run_in_executor(None, blocking_func, 5)
    print('wait a few seconds!')
    yield from asyncio.sleep(1.5)

    blocking_future.cancel()
    yield from asyncio.wait(non_blocking_futures)



loop = asyncio.get_event_loop()
executor = ThreadPoolExecutor(max_workers=1)
loop.set_default_executor(executor)
asyncio.async(main())
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码只允许阻塞函数输出:

blocking 0/5
blocking …
Run Code Online (Sandbox Code Playgroud)

python event-loop executor python-asyncio

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

vim - 配置python3支持但仍在版本信息中显示-python3

我试图在支持python3的Ubuntu 12.04上构建vim,因为默认安装只支持python2.我从https://vim.googlecode.com/hg/中提取源代码并进行如下配置:

./configure --disable-pythoninterp --enable-python3interp --with-features huge
Run Code Online (Sandbox Code Playgroud)

我也试过了--enable-pythoninterp选项.

当我在这个安装上运行vim --version时,我仍然得到-python3,如下所示:

$ ./src/vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 18 2014 09:32:02)
Included patches: 1-481
Compiled by brendan@brendan-laptop
Normal version with GTK2 GUI.  Features included (+) or not (-):
+acl             -farsi           -mouse_netterm   +syntax
-arabic          +file_in_path    -mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
+balloon_eval    +float           -mouse_urxvt     -tag_any_white
+browse          +folding         +mouse_xterm     -tcl
+builtin_terms   -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
+clientserver    -hangul_input    +netbeans_intg …
Run Code Online (Sandbox Code Playgroud)

vim python-3.x

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

为什么pandas.DataFrame.update会更改更新数据帧的dtypes?

由于显而易见的原因,我想在更新后将列的dtypes保持为int.任何想法为什么这不能按预期工作?

import pandas as pd

df1 = pd.DataFrame([
    {'a': 1, 'b': 2, 'c': 'foo'},
    {'a': 3, 'b': 4, 'c': 'baz'},
])

df2 = pd.DataFrame([
    {'a': 1, 'b': 8, 'c': 'bar'},
])

print 'dtypes before update:\n%s\n%s' % (df1.dtypes, df2.dtypes)

df1.update(df2)

print '\ndtypes after update:\n%s\n%s' % (df1.dtypes, df2.dtypes)
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

dtypes before update:
a     int64
b     int64
c    object
dtype: object
a     int64
b     int64
c    object
dtype: object

dtypes after update:
a    float64
b    float64
c     object
dtype: object
a     int64
b …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

asyncio:是否可以在不使用yield的情况下释放对事件循环的控制?

我想知道是否有任何方法在函数中释放asyncio控制循环一段时间而不必使用协程装饰器和关键字的收益?

import asyncio
import time


class MyClass(object):

    def do_something_periodically(self, delay, repeats):
        for i in range(repeats):
            # Do something useful
            self._sleep(delay)

    def _sleep(self, delay):
        time.sleep(delay)


class MyAsyncioClass(MyClass):

    def _sleep(self, delay):
        # Perform an asyncio.sleep(delay) here which yields control of the event loop
        # and waits for time delay before returning


loop = asyncio.get_event_loop()
obj1 = MyAsyncioClass()
obj2 = MyAsyncioClass()
loop.run_until_complete(asyncio.wait(
    [obj1.do_something_periodically(1000, 3),
     obj2.do_something_periodically(2000, 2)]))
Run Code Online (Sandbox Code Playgroud)

我希望能够这样做,以便可以从对asyncio一无所知的代码调用do_something_periodically方法,但会在休眠期间释放循环控制.这可能吗?

谢谢!

编辑显示我的特定用例的缩减版本

python python-3.x python-asyncio

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