小编wew*_*ewa的帖子

从csv-file读取数据并转换为正确的数据类型

我有以下问题.我写了一个二维列表,其中每列具有不同的类型(bool,str,int,list),到csv文件.现在我想再次从csv文件中读出数据.但我读到的每个单元都被解释为一个字符串.

如何自动将读入数据转换为正确的类型?或者更好:是否有可能告诉csv-reader每列的正确数据类型?

示例数据(如csv文件中):

IsActive,Type,Price,States
True,Cellphone,34,"[1, 2]"
,FlatTv,3.5,[2]
False,Screen,100.23,"[5, 1]"
True,Notebook, 50,[1]
Run Code Online (Sandbox Code Playgroud)

python csv python-2.5

18
推荐指数
3
解决办法
4万
查看次数

Pydev和*.pyc文件

我使用Eclipse 4.2.1和pydev插件(版本2.7.1)进行python开发.似乎pydev在预编译的python文件(*.pyc文件)方面存在问题.我正在使用仅提供此类预编译文件的程序包.

导入模块时,pydev显示"未解决的导入"错误.并且还没有为这种预编译模块提供工具提示.

但是代码可以毫无错误地执行.

有没有办法"教"pydev,如何处理*.pyc文件?

python pydev python-2.5

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

按字符串调用方法

我有以下课程.

func_list= ["function1", "function2", "function3"]

class doit(object):
    def __init__(self):
        for item in func_list:
            if item == "function1":
                self.function1()
            elif item == "function2":
                self.function2()
            elif item == "function3":
                self.function3()

    def function1(self):
        #do this
        pass
    def function2(self):
        #do that
        pass
    def function3(self):
        pass
Run Code Online (Sandbox Code Playgroud)

如果创建了此类的实例,它将遍历字符串列表并根据实际字符串调用方法.列表中的字符串具有相应方法的名称.

我怎样才能以更优雅的方式做到这一点?我不想为elif我添加到列表中的每个"函数" 添加另一个路径.

python python-2.5

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

迭代嵌套列表和字典

我需要遍历嵌套列表和字典,并通过十六进制字符串替换每个整数。例如,这样的元素可能如下所示:

element = {'Request': [16, 2], 'Params': ['Typetext', [16, 2], 2], 'Service': 'Servicetext', 'Responses': [{'State': 'Positive', 'PDU': [80, 2, 0]}, {}]}
Run Code Online (Sandbox Code Playgroud)

应用该函数后,它应该是这样的:

element = {'Request': ['0x10', '0x02'], 'Params': ['Typetext', ['0x10', '0x02'], '0x02'], 'Service': 'Servicetext', 'Responses': [{'State': 'Positive', 'PDU': ['0x50', '0x02', '0x00']}, {}]}
Run Code Online (Sandbox Code Playgroud)

我已经找到了一个函数,可以遍历这种嵌套的可迭代对象http://code.activestate.com/recipes/577982-recursively-walk-python-objects/。适应 python 2.5 这个函数看起来像这样:

string_types = (str, unicode)
iteritems = lambda mapping: getattr(mapping, 'iteritems', mapping.items)()

def objwalk(obj, path=(), memo=None):
    if memo is None:
        memo = set()
    iterator = None
    if isinstance(obj, dict):
        iterator = iteritems
    elif …
Run Code Online (Sandbox Code Playgroud)

python loops

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

模拟用户交互

是否可以模拟用户输入?我怎么能意识到这一点?

我需要自动化用户与 Windows 应用程序的交互。问题是,这个应用程序没有为我需要调用的一个特殊函数提供 API。但是可以通过标准鼠标输入在应用程序窗口中访问此功能。

我不依赖于任何编程语言。我只需要编写一个具有相同功能的应用程序,就像我使用计算机鼠标输入所做的那样。

windows

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

在 systemd 停止运行 python 服务之前做一些事情

我编写了一个简单的 python 程序并将其作为 systemd 服务启动。我想在 systemd 关闭这个正在运行的 python 程序之前做一些事情(例如将消息写入日志文件)。

我尝试过atexit(就像这篇文章中提到的:在程序退出之前做一些事情),我也尝试捕获SIGTERM(就像这里描述的: https: //nattster.wordpress.com/2013/06/05/catch-kill-signal-in- python/)但没有成功。

我正在使用 raspbian-jessie 和 python2.7。

systemd在杀死正在运行的 python 程序之前我该怎么做?

这是一个示例代码片段(带有atexit):

#!/usr/bin/env python

from pymodbus.server.async import StartTcpServer

from pymodbus.device import ModbusDeviceIdentification
from pymodbus.datastore import ModbusSequentialDataBlock
from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext

import atexit

import logging
logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.DEBUG)

def exit_handler():
    log.warning('My application is ending!')

atexit.register(exit_handler)

store = ModbusSlaveContext(
    di = ModbusSequentialDataBlock(0, [17]*100),
    co = ModbusSequentialDataBlock(0, [17]*100),
    hr = ModbusSequentialDataBlock(0, …
Run Code Online (Sandbox Code Playgroud)

python debian exit python-2.7 systemd

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

在python对象中使用self-parameter

我有一个关于在python中定义函数和自我参数的问题.

有以下代码.

class Dictionaries(object):
    __CSVDescription = ["ID", "States", "FilterTime", "Reaction", "DTC", "ActiveDischarge"]

    def __makeDict(Lst):
        return dict(zip(Lst, range(len(Lst))))

    def getDict(self):
        return self.__makeDict(self.__CSVDescription)

    CSVDescription = __makeDict(__CSVDescription)

x = Dictionaries()
print x.CSVDescription
print x.getDict()
Run Code Online (Sandbox Code Playgroud)

x.CSVDescription工作良好.但是print x.getDict()返回错误.

TypeError: __makeDict() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

我可以self__makeDict()方法中添加-parameter ,但之后print x.CSVDescription就行不通了.

如何self正确使用-parameter?

python class

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

自动执行eclipse插件

我尝试创建一个eclipse插件,在eclipse工作台关闭时删除一些文件.我开始使用Hello, World command插件项目并添加了一个IWorkbenchListener像这个toppic中提到的Eclipse关闭钩子能够阻止终止.当我按下eclipse菜单栏中的一个特殊按钮(由此插件添加)时,会添加监听器.

如何IWorkbenchListener在不需要点击任何菜单条目的情况下自动添加?

java eclipse eclipse-plugin

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

"START"在哪里搜索可执行文件?

在我的公司,我们使用批处理文件来启动Matlab.批处理文件在启动Matlab之前准备环境.

Matlab本身就是以

START MATLAB.EXE
Run Code Online (Sandbox Code Playgroud)

我的系统上安装了几个版本的Matlab.而且这个命令启动了错误的Matlab版本.START在哪里寻找可执行文件?

windows matlab cmd batch-file

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

根据时间值合并2个向量

我想根据时间值合并2个向量.这应该是这样的(第1列=时间,第2列=实际值):

A =

           1         234
           3         121
           4         456
           6        6756

B =

           2         435
           5          90
          10         365
Run Code Online (Sandbox Code Playgroud)

结果:

C =

           1         234
           2         435
           3         121
           4         456
           5          90
           6        6756
          10         365
Run Code Online (Sandbox Code Playgroud)

在Matlab中有没有一种优雅的方法来实现这一点?

matlab

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