小编Mik*_*ler的帖子

如何在py2exe上捆绑用execfile()启动的.py文件?

我正在开发一个关于Python的小工具,它基本上在一个文件夹上启动一组脚本.我需要将它打包在一个独立的二进制文件上,我正在使用py2exe.

我当前的代码用于os.path.listdir()获取文件夹上的所有.py文件,然后使用execfile()基于PyQT接口上的用户输入的funcion 启动其中一些文件.

如果通过主Python文件执行,我的代码按预期工作,但在使用py2exe编译时失败.例外是:

IOError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

用于启动的python文件execfile().

我正在捆绑"bundle_files": 1zipfile = None.我试图包含这些文件搞乱包含和包,但没有运气.你能帮我正确配置py2exe吗?

这是我目前的setup.py:

from distutils.core import setup
import py2exe
import os

#Python modules excluded from binary file
mod_excludes = [
    "Tkinter",
    "doctest",
    "unittest",
    "pydoc",
    "pygments",
    "pdb",
    "email",
    "_ssl",
    "difflib",
    "inspect"
]

#Avoid adding this dependencies
dll_excludes = [
    "MSVCP90.dll",
    "w9xpopen.exe"
]

#Force to exe
mod_includes = [
    "sip"
]

package_includes = [
    "app.payloads" …
Run Code Online (Sandbox Code Playgroud)

python windows py2exe

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

Python - GUI2EXE - AttributeError: 'module' 对象没有属性 'Popen'

我使用 Python 2.7 和 py2exe,最近我下载了 gui2exe 最新版本 (5.3)。但是当我尝试执行该gui2exe.py文件时,它给了我一个错误:

AttributeError: 'module' object has no attribute 'Popen'
Run Code Online (Sandbox Code Playgroud)

我研究了很多,但从未得到任何解决方案。

请帮忙。

python user-interface py2exe python-2.7

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

将数据附加到现有的pytables表

我是PyTables的新手,并实现了一些从Pytables中的表中插入和检索数据的基本技术.但是,我不确定如何在现有的PyTables表中插入数据,因为我在教程中读取/获取的所有内容都是创建一个新表(使用h5file.createTable()方法).这是教程有关将数据插入从头创建的PytTables表的基本代码:

h5file = openFile("tutorial1.h5", mode = "w", title = "Test file")
group = h5file.createGroup("/", 'detector', 'Detector information')
table = h5file.createTable(group, 'readout', Particle, "Readout example")

for i in xrange(10):
    particle['name']  = 'Particle: %6d' % (i)
    particle['TDCcount'] = i % 256
    particle['ADCcount'] = (i * 256) % (1 << 16)
    particle['grid_i'] = i
    particle['grid_j'] = 10 - i
    particle['pressure'] = float(i*i)
    particle['energy'] = float(particle['pressure'] ** 4)
    particle['idnumber'] = i * (2 ** 34)
    # Insert a new particle …
Run Code Online (Sandbox Code Playgroud)

python pytables

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

计算多列的平均值,忽略NaN pandas numpy

我有一个基本的价值表:

import pandas as pd
import numpy as np
test = pd.read_csv('mean_test.csv')
test.replace('n/a',np.nan)
test


value1  value2  value3
1   9   5
5   NaN 4
9   55  NaN
NaN 4   9
Run Code Online (Sandbox Code Playgroud)

我想计算三个值的平均值,忽略NaN,所以对于第二行,它将是(5 + 4)/ 2.因此我不能使用.replace函数在NaN的位置放置零.我已经搜索了其他一些问题,但找不到任何涵盖此问题的内容.我错过了一些明显的东西吗

python pandas

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

价值差异的功能

Python中是否有一个函数来获取列表中两个或多个值之间的差异?那么,在这两个列表中:

list1 = [1, 5, 3, 7]
list2 = [4, 2, 6, 4]
Run Code Online (Sandbox Code Playgroud)

我需要计算list1和list2中每个值之间的差异.

for i in list1:
    for ii in list2:
       print i -ii
Run Code Online (Sandbox Code Playgroud)

这给出了负值,但我希望两个列表的值之间的减法仅从最高值到最低值,以便不获得负值.

对于上面的列表,我希望输出为[3, 3, 3, 3].

谢谢.

python list python-2.7 python-3.x

5
推荐指数
3
解决办法
149
查看次数

通过列索引而不是列名来调用数据框中的列-Pandas

如何使用数据框中的索引而不是其名称在代码中调用列。

例如,我有数据帧df的列abc

除了调用之外df['a'],我可以使用其列索引来调用它df[1]吗?

python dataframe pandas

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

如何在列表理解期间检查列表的条件?

假设我有一个包含三个单词的列表,我想生成一个包含该单词中的字符的列表。

这可以使用 for 循环或列表理解轻松实现:

wordList = ["one", "two", "three"]
letterList = []

# Solution 1:

for word in wordList:
    for letter in word:
        letterList.append(letter)

# Solution 2:

letterList = [letter for word in wordList for letter in word]

print(letterList) # Prints: ['o', 'n', 'e', 't', 'w', 'o', 't', 'h', 'r', 'e', 'e']
Run Code Online (Sandbox Code Playgroud)

然而,当这个问题变得更加困难时,我无法使用列表理解找到解决方案。

例如,假设我想生成前面的列表,但我还想删除所有重复的字符。

我可以使用 for 循环来做到这一点:

wordList = ["one", "two", "three"]
letterList = []

for word in wordList:
    for letter in word:
        if letter not in letterList:
            letterList.append(letter)

print(letterList) …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension python-3.6

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

Python:最快的方式来比较数组元素

我正在寻找输出Python中两个数组的第一个差异的索引的最快方法.例如,让我们采用以下两个数组:

test1 = [1, 3, 5, 8]
test2 = [1]
test3 = [1, 3]
Run Code Online (Sandbox Code Playgroud)

比较test1test2,我想输出1,而test1和test3的比较应该输出2.

换句话说,我寻找相当于声明:

import numpy as np
np.where(np.where(test1 == test2, test1, 0) == '0')[0][0] 
Run Code Online (Sandbox Code Playgroud)

具有不同的阵列长度.

任何帮助表示赞赏.

python arrays numpy

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

为python 2和3安装了Anaconda。无法运行2

我为Python 2和3安装了两个版本的Anaconda。

我添加了路径。

我使用Anaconda提示。

python program.py
Run Code Online (Sandbox Code Playgroud)

假设我使用的是Python3。例如,它无法理解:

print "hello!"
Run Code Online (Sandbox Code Playgroud)

我试过了:

py program.py
py -2 program.py
Run Code Online (Sandbox Code Playgroud)

但是他们没有用。如何运行Python 2程序?

如果输入:

python
Run Code Online (Sandbox Code Playgroud)

在Acaconda提示下,然后说:

python 3.5.1. Anaconda 2.4.1
Run Code Online (Sandbox Code Playgroud)

因此,提示是假设我正在使用Python 3。

但是我有用Python 2编写的程序和用Python 3编写的程序。

我想在两者之间顺利切换。我应该怎么做?

python python-2.7 python-3.x anaconda conda

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

read()文本文件的不同输出

这段代码的结果:

!/usr/bin/python
from sys import argv
script, file = argv
apertura = open(file,'r')

for a in apertura:
    print(apertura.read())
Run Code Online (Sandbox Code Playgroud)

是:

quarta quinta
sesta
settima
ottava
nona
Run Code Online (Sandbox Code Playgroud)

我想用read()打印整个文件.上面的代码跳过一些行.为什么?

文件内容如下:

prima seconda terza
quarta
quinta
sesta
settima
ottava
nona
Run Code Online (Sandbox Code Playgroud)

python

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