小编the*_*eta的帖子

转义gsub的字符串

我读了一个文件:

local logfile = io.open("log.txt", "r")
data = logfile:read("*a")
print(data)
Run Code Online (Sandbox Code Playgroud)

输出:

...
"(\.)\n(\w)", r"\1 \2"
"\n[^\t]", "", x, re.S
...
Run Code Online (Sandbox Code Playgroud)

是的,logfile看起来很糟糕,因为它充满了各种命令

如何从数据变量中调用gsub和删除ie "(\.)\n(\w)", r"\1 \2"行?

下面的代码段,不起作用:

s='"(\.)\n(\w)", r"\1 \2"'
data=data:gsub(s, '')
Run Code Online (Sandbox Code Playgroud)

我想有些逃避需要完成.任何简单的方案?


更新:

local data = [["(\.)\n(\w)", r"\1 \2"
"\n[^\t]", "", x, re.S]]

local s = [["(\.)\n(\w)", r"\1 \2"]]

local function esc(x)
   return (x:gsub('%%', '%%%%')
            :gsub('^%^', '%%^')
            :gsub('%$$', '%%$')
            :gsub('%(', '%%(')
            :gsub('%)', '%%)')
            :gsub('%.', '%%.')
            :gsub('%[', '%%[')
            :gsub('%]', '%%]')
            :gsub('%*', '%%*')
            :gsub('%+', '%%+')
            :gsub('%-', '%%-')
            :gsub('%?', …
Run Code Online (Sandbox Code Playgroud)

lua gsub

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

如何指示字符串是否具有数值

我循环遍历字符串变量data,它可能具有整数数值,如"123".如果这个字符串变量有数值,我想表明它,并考虑使用这样的:

If IsNumeric(CInt(data)) Then 
    WScript.Echo "Number"
Else
    WScript.Echo "String"
End If
Run Code Online (Sandbox Code Playgroud)

但是CInt()每次data变量都无法转换为整数时会引发错误:

Type mismatch: 'CInt'

如何指示字符串在vbscript中是否具有整数值?

vbscript

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

如何在使用"setuptools"的Python包中使用"checkinstall"

在Ubuntu/Debian上我checkinstall从源代码安装包时使用包

sudo checkinstall make install

要么

sudo checkinstall python setup.py install

我的问题是使用setuptools(修改easy-install.pth文件)的Python包无法正确安装,因为checkinstall要求easy-install.pth为每个使用它的新Python包覆盖.

我知道我可以使用,pip install <package>但Debian打包系统协调的依赖关系不会"看到"这个包,如果没有处理,至少checkinstall缺乏我更好的知识.

我希望我的术语是正确的,我想知道这个问题是否可以以某种方式解决,问自己:

  • 可以checkinstall某种方式使用使用setuptools?,或的 Python包
  • 可以使用setuptools不同的Python包安装(比如避免写入easy-install.pth某些切换到python setup.py install命令或类似?

python linux packaging setuptools

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

从各种"图像"对象中规范化numpy数组

请考虑这个可重复的例子:

from PIL import Image
import numpy as np
import scipy.misc as sm
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.cbook as cbook
import urllib

datafile = cbook.get_sample_data('lena.jpg')
lena_pil = Image.open(datafile)
lena_pil_np = np.asarray(lena_pil)

lena_scipy = sm.lena()

lena_tmp = open('lena_tmp.png', 'wb')
lena_tmp.write(urllib.urlopen('http://optipng.sourceforge.net/pngtech/img/lena.png').read())
lena_tmp.close()

lena_mpl = mpimg.imread('lena_tmp.png')

sm.info(lena_pil_np)
sm.info(lena_scipy)
sm.info(lena_mpl)
Run Code Online (Sandbox Code Playgroud)

输出是:

>>> sm.info(lena_pil_np)
class:  ndarray
shape:  (512, 512, 3)
strides:  (1536, 3, 1)
itemsize:  1
aligned:  True
contiguous:  True
fortran:  False
data pointer: 0xb707e01cL
byteorder:  little
byteswap:  False
type: …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib scipy python-imaging-library

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

如何使用XInclude在XML上应用XSLT

我有这个XML文件:

<?xml version="1.0"?>
<xi:include href="http://www.w3schools.com/dom/books.xml" 
            xmlns:xi="http://www.w3.org/2003/XInclude"/>
Run Code Online (Sandbox Code Playgroud)

我希望它在http://www.w3schools.com/dom/books.xml处理时应该导致引用的远程XML文件.

为此我创建了这个XSL文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="xml"/>
    <xsl:template match="*">
        <xsl:copy-of select="//book/title"/>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

在XSL转换之后,我希望从引用的XML文件中获取带有标题节点的XML输出.

然而它没有发生,转换只是产生了一个空文件.我怀疑XInclude没有执行指令.

那么如果可能的话,如何在Xincluded XML文件上应用XSLT?

xml xslt xinclude

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

检测闭合轮廓

这是示例图像:

屏幕截图

我使用opencv来检测轮廓:

>>> fc = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
>>> contours = fc[0]
Run Code Online (Sandbox Code Playgroud)

为了检测闭合轮廓,我想检查一下opencv返回的每个轮廓中的起点和终点,而我注意到无论对象的形状如何,opencv似乎都在勾勒出每个对象的轮廓,因此我得到了以下结果:

>>> for contour in contours:
>>>    print(contour[0,:,:], contour[-1,:,:])
[[246  38]] [[247  38]]
[[92 33]] [[93 33]]
Run Code Online (Sandbox Code Playgroud)

或找到的每个轮廓都有闭合的路径。

我搜索了findContour()函数中可用方法的其他常量,但似乎所有常量都返回闭合路径。

那么,有什么通用的方法可以检测发现的轮廓是否闭合?


我在提出要求之前先用Google搜索,但没有得到结果,但是我在右侧的类似问题中看到了很好的候选人:我怎么知道在opencv中轮廓是打开还是关闭?建议在哪里使用cv2.isContourConvex(contour),但是:

>>> for contour in contours:
>>>    print(cv2.isContourConvex(contour))
False
False
Run Code Online (Sandbox Code Playgroud)

另一个更新:ContourArea看起来可以提供答案(至少对于简单的轮廓),但是我没有在示例图像之上进行任何其他测试:

>>> for contour in contours:
>>>     print(cv2.contourArea(contour))
0.0
12437.5
Run Code Online (Sandbox Code Playgroud)

python opencv

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

在范围内分配多个值

在 VBA 中,我可以将数组分配给单元格范围,以便范围内的每个单元格都从数组中获得相应的值:

Range("A1:D1").Value = Array(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

我试图用 openpyxl 做同样的事情:

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
ws.range['A1:D1'].value = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

但没有成功。

有没有办法在不迭代每个单元格的情况下使用 openpyxl 进行范围分配?

python excel openpyxl

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

使用 cv2.VideoCapture() 从 IP 摄像头读取流

参考这个类似的问题How to parse mjpeg http stream from ip camera? 我能够使用requests以下命令从 IP 摄像机读取流:

stream = requests.get('http://<user>:<pass>@<addr>:<port>/videostream.cgi', stream=True)

bytez = ''
while True:
    bytez += stream.raw.read(16384)
    ...
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但想通过使用cv2.VideoCapture()请求来实现。

我尝试了以下方式的变化:

cap = cv2.VideoCapture()
cap.open('http://<user>:<pass>@<addr>:<port>/videostream.cgi?.mjpg')

while(True):
    ret, frame = cap.read()
    ...
Run Code Online (Sandbox Code Playgroud)

但无法得到任何东西,但关于空帧的异常。

如何使用 cv2.VideoCapture() 读取 IP 摄像机流?

python opencv

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

如何停止力导向图模拟

我试图通过重用这个众所周知的示例,使用 D3 进行有向图的 HTML 表示:http://bl.ocks.org/mbostock/4062045

我有一个包含 5K 个节点和 20K 个边的数据。

问题是,当我加载页面时,它似乎永远不会完成分区(或对数据执行的任何其他操作),所以我迫不及待地想看到完整的结果。

有什么办法可以停止模拟吗?
例如,大约 20 秒后,网络图已良好分区,我希望它停止。

graph d3.js

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

将 numpy dtypes 转换为 pandas DataFrame

我有这种类型的 numpy 数组:

>>> attr_table.dtype.descr
[('FID', '<i4'),
 ('Shape', '<f8', (2,)),
 ('PROVINCE', '<i4'),
 ('PROVNAME', '<U60'),
 ('PROVABBR', '<U10'),
 ('NATION', '<i4'),
 ('CNTRYNAME', '<U60'),
 ('CNTRYABBR', '<U10')]
Run Code Online (Sandbox Code Playgroud)

如果我从这个数组生成 DataFrame,我会得到:

>>> df_tab = pd.DataFrame(attr_table.tolist())
>>> df_tab.dtypes
0     int64
1    object
2     int64
3    object
4    object
5     int64
6    object
7    object
dtype: object
Run Code Online (Sandbox Code Playgroud)

现在我猜测,如果 pandas 没有转换那些 numpy dtypes,也许我也无法,但由于 DataFrame 函数中有 dtype 参数,我想试试运气:

df_tab = pd.DataFrame(attr_table.tolist(), dtype=attr_table.dtype)
Run Code Online (Sandbox Code Playgroud)

这给了我:

NotImplementedError: compound dtypes are not implementedin the DataFrame constructor
Run Code Online (Sandbox Code Playgroud)

然后,我尝试了其他几种变体,例如定义列并使用元组列表提供 dtype 参数,该元组列表用 numpy dtype 表示法描述每列,但我再次遇到相同的错误。

将类型从 numpy 数组转换为 …

python types numpy pandas

5
推荐指数
0
解决办法
2265
查看次数