小编Nir*_*Nir的帖子

如何区分两个文件列表并忽略列表中的位置

我有两个文件列表,我想要差异.第二个列表中包含更多文件,因为当我对这两个列表进行区分时,它们都按字母顺序排列,我得到的文件(行)存在于两个列表中,但位于不同的位置.

我想区分这两个列表,忽略列表中的行位置.这样我只会获得列表中的新行或缺失行.

谢谢.

unix diff

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

在python中为自定义异常设置退出代码

我使用自定义异常来区分Python的默认异常.

有没有办法在引发异常时定义自定义退出代码?

class MyException(Exception):
    pass

def do_something_bad():
    raise MyException('This is a custom exception')

if __name__ == '__main__':
    try:
        do_something_bad()
    except:
        print('Oops')  # Do some exception handling
        raise
Run Code Online (Sandbox Code Playgroud)

在此代码中,main函数在try代码中运行一些函数.在我捕获异常后,我想重新提升它以保留回溯堆栈.

问题是'raise'总是退出1.我想用自定义退出代码(对于我的自定义异常)退出脚本,并在任何其他情况下退出1.

我已经看过这个解决方案,但它不是我想要的: 在引发异常时在Python中设置退出代码

这个解决方案迫使我检查我使用的每个脚本,无论异常是默认还是自定义.

我希望我的自定义异常能够告诉raise函数使用哪个退出代码.

python exception raise

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

PyInstaller 2.1导入自定义包

我有一个脚本,我正在尝试使用Python 2.7使用PyInstaller(2.1)进行编译

该脚本使用我编写的名为'auto_common'的自定义包

在脚本中我使用导入它

sys.path.append(path_to_package)
Run Code Online (Sandbox Code Playgroud)

项目文件夹如下所示:

Automation/                  Top level project
    Proj1/
        script1.py           This is the script I want to compile
        myspec.spec          Spec file for the script
    Packages/
        auto_common/
            __init__.py      Init module of the package (empty)
            ...              More modules here
Run Code Online (Sandbox Code Playgroud)

在PyInstaller日志文件中,我收到以下警告:

W: no module named auto_common (top-level import by __main__)
Run Code Online (Sandbox Code Playgroud)

如何创建一个包含包的钩子(例如使用sys.path.append)?

我尝试在spec文件中将包的路径添加到'pathex',但它不起作用.

python hook pyinstaller

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

排序字符串列表并在python中的字母后面放置数字

我有一个我要排序的字符串列表.

默认情况下,字母的值大于数字(或字符串数​​字),这将它们放在排序列表中.

>>> 'a' > '1'
True
>>> 'a' > 1
True
Run Code Online (Sandbox Code Playgroud)

我希望能够将所有以数字开头的字符串放在列表的底部.

例:

未排序列表:

['big', 'apple', '42nd street', '25th of May', 'subway']
Run Code Online (Sandbox Code Playgroud)

Python的默认排序:

['25th of May', '42nd street', 'apple', 'big', 'subway']
Run Code Online (Sandbox Code Playgroud)

要求排序:

['apple', 'big', 'subway', '25th of May', '42nd street']
Run Code Online (Sandbox Code Playgroud)

python sorting string

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

Python - 在图像中查找对象的中心

我有一个图像文件,其背景为白色,非白色物体.我想使用python(Pillow)找到对象的中心.

我在c ++中发现了一个类似的问题,但没有可接受的答案 - 我怎样才能找到对象的中心?

类似的问题,但回答中链接断开 - 找到不规则形状多边形中心的最快方法是什么?(回答中断链接)

我也阅读了这个页面,但它没有给我一个有用的食谱 - https://en.wikipedia.org/wiki/Smallest-circle_problem

这是一个示例图像: 月亮

编辑:我正在使用的当前解决方案是:

def find_center(image_file):
    img = Image.open(image_file)
    img_mtx = img.load()
    top = bottom = 0
    first_row = True
    # First we find the top and bottom border of the object
    for row in range(img.size[0]):
        for col in range(img.size[1]):
            if img_mtx[row, col][0:3] != (255, 255, 255):
                bottom = row
                if first_row:
                    top = row
                    first_row = False
    middle_row = (top + bottom) / 2  # Calculate the middle row of …
Run Code Online (Sandbox Code Playgroud)

python image pillow

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

Active Perl从@ARGV中删除"^"

以下代码仅适用于mac,但不适用于windows7.

perl -e "print @ARGV" aaa^bbb
Run Code Online (Sandbox Code Playgroud)

在Mac上(perl 5.10,darwin),它按预期打印出来:aaa ^ bbb

在Windows 7,32bit(ActivePerl 5.12)上打印出来:aaabbb

"^"字符被抛出@ARGV.这个字符是我正在使用脚本的文件名的一部分,所以我需要能够从@ARGV读取它.

我尝试使用"aaa\^ bbb",但它只打印出"aaa\bbb".

perl argv windows-7

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

标签 统计

python ×4

argv ×1

diff ×1

exception ×1

hook ×1

image ×1

perl ×1

pillow ×1

pyinstaller ×1

raise ×1

sorting ×1

string ×1

unix ×1

windows-7 ×1