私信  •  关注

Thomas

Thomas 最近回复了
4 年前
回复了 Thomas 创建的主题 » 在Python中用OpenCv2编写多个图像

'/path/cat' + '_gray.jpg' 总是给你 /path/cat_gray.jpg ,与输入文件名无关。

os.path 模块。

import cv2
import glob
import os.path

path = "/path/*.jpg"

for file in glob.glob(path):
    img = cv2.imread(file)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow('Gray image', gray)
    basename = os.path.basename(file)  # e.g. MyPhoto.jpg
    name = os.path.splitext(basename)[0]  # e.g. MyPhoto
    cv2.imwrite('/path/' + name + '_gray.jpg', gray)
4 年前
回复了 Thomas 创建的主题 » 如何在python中将input[by input()]值作为参数传递?

input (在Python 3中)返回 str 它被视为文本而不是数字。如果要乘(或加)数字,必须首先将字符串解析为数字。

有时这也会失败。如果假设输入始终是有效数字,则可以使用以下命令转换字符串:

float("3.1415926")

您可以在代码中使用它:

def add(num1,num2):
    return num1*num2

num1=float(input('Enter number1: '))
num2=float(input('Enter number2: '))

print(add(num1,num2))

为了避免浮点错误,可以使用f字符串(在Python 3.6中添加)打印/显示浮点。

def add(num1,num2):
    return num1*num2

num1=float(input('Enter number1: '))
num2=float(input('Enter number2: '))

print(f"{add(num1,num2):.2f}")
4 年前
回复了 Thomas 创建的主题 » 将javascript函数转换为python
from re import sub

def decompress(edi):
    decompressed = ""
    last_compressor = 0

    for i, c in enumerate(edi):
        if c == "\x1D":
            repetitions = int(edi[i + 1: i + 3], 16)
            repeating_char = edi[i + 3]

            decompressed += edi[last_compressor:i] + repeating_char * repetitions
            last_compressor = i + 4

    decompressed += edi[last_compressor:-1]

    return sub("\r\n|\n|\r", decompressed)

我是怎么读代码的

可以忽略这一点,但这可能会有所帮助。

鉴于 edi 它有一个 len ,每个 电子数据交换 那是匹配的 \x1D ,获取的子字符串 EDI 来自 index + 1 index + 3 作为十六进制整数设置为 decimal 。这个 repeater 索引+3 '的第个元素 电子数据交换 str 。它将重复中定义的十六进制次数。 十进制的 ,但仅在 电子数据交换 lastCompressor 到当前索引。在每次迭代中 \x1D 是匹配的, 末级压缩机 增加4。

您可以简单地覆盖 save() 模型的方法来计算 Points 领域:

    def save(self, *args, **kwargs):
        self.Points = self.Value / self.Coefficient
        super().save(*args, **kwargs)

您可能还需要在这里检查并处理除数为零的问题。

13 年前
回复了 Thomas 创建的主题 » 令人费解的并行python问题-传输套接字超时

来自并行python论坛的bagira的回答:

每隔多长时间计算一次 工作需要吗?看看这个变量 TRANSPORT_SOCKET_TIMEOUT 在里面 /usr/local/lib/python2.6/dist-packages/pptransport.py。

也许你的工作比 上面变量中的时间。增加 它的价值和尝试。

结果发现这正是问题所在。在我的应用程序中,我使用pp作为作业的批处理调度程序,这可能需要几分钟的时间,所以我需要调整它。(默认为30秒)

13 年前
回复了 Thomas 创建的主题 » 你知道其他有交互模式的编程语言吗,比如python?[关闭]

Haskell 甚至有两个(主流)交互式口译员, Hugs ghci .

13 年前
回复了 Thomas 创建的主题 » python语言的细微差别[复制]

这一次我花了几个小时才弄明白我是什么时候在一个真正的程序中第一次遇到它的:

函数的默认参数是可变的静态值。

def foo(bar = []):
  bar.append(1)
  print(bar)

foo()
foo()

这将打印

[1]
[1, 1]