我读了一个文件:
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) 我循环遍历字符串变量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中是否具有整数值?
在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命令或类似?请考虑这个可重复的例子:
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) 我有这个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?
这是示例图像:

我使用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) 在 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 进行范围分配?
参考这个类似的问题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 摄像机流?
我试图通过重用这个众所周知的示例,使用 D3 进行有向图的 HTML 表示:http://bl.ocks.org/mbostock/4062045
我有一个包含 5K 个节点和 20K 个边的数据。
问题是,当我加载页面时,它似乎永远不会完成分区(或对数据执行的任何其他操作),所以我迫不及待地想看到完整的结果。
有什么办法可以停止模拟吗?
例如,大约 20 秒后,网络图已良好分区,我希望它停止。
我有这种类型的 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 数组转换为 …