我有一个脚本,可从第三方程序中抓取数据。目前,我正在使用模拟的键盘笔触来选择和复制数据:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('^a')
shell.SendKeys('^c')
Run Code Online (Sandbox Code Playgroud)
该脚本可以正常运行,但是由于某种原因,它使我的系统和第三方应用程序非常滞后。现在,我正在寻找更有效的方法来全选并在Windows中复制。
我有以下格式的数据:
[('A', 'B', 'C'),
('B', 'C', 'A'),
('C', 'B', 'B')]
Run Code Online (Sandbox Code Playgroud)
我想要得到这个:
ABC
BCA
CBB
Run Code Online (Sandbox Code Playgroud)
我当时能够转换一个元组:
>> "".join(data[0])
.. 'ABC'
Run Code Online (Sandbox Code Playgroud)
但是,当我试图转换整个列表时,Python给了我一个错误:
>> "".join(data[:])
.. TypeError: sequence item 0: expected string, tuple found
Run Code Online (Sandbox Code Playgroud)
任何建议我将如何能够转换整个列表?
谢谢!
我在Pandas中有一系列数据,我正在尝试在col1中打印每个字符串的第二个字符.我无法弄清楚该怎么做.我可以轻松地单独打印每个字符串的第二个字符,例如:
array.col1[0][1]
Run Code Online (Sandbox Code Playgroud)
但是我想从每一行打印第二个字符,所以会有一个第二个字符的"列表".
我试过了
array.col1[0:][1]
Run Code Online (Sandbox Code Playgroud)
但这只是返回第二行作为整个col1.
有什么建议?
我有一个包含三个字段(目的地、开始时间和结束时间)的小型 Flask 应用程序。我想在选择开始和结束日期时使用 DatePicker 小部件来显示日历。
使用我当前的脚本,日期小部件根本不会产生。我在这里缺少什么?
app.py:
# -*- coding: utf-8 -*-
from flask.ext.wtf import Form
from wtforms import SubmitField, SelectField, DateField
from flask import Flask, render_template, request
from flask.ext.bootstrap import Bootstrap
from flask.ext.admin.form.widgets import DatePickerWidget
class GeneralForm(Form):
destination = SelectField(choices = data)
start_time = DateField('Start at', widget=DatePickerWidget())
end_time = DateField('End at', widget=DatePickerWidget())
submit = SubmitField('Submit')
@app.route("/", methods=['GET', 'POST'])
def index():
form = GeneralForm(request.form)
if request.method == 'POST':
destination = form.destination.data
start_time = form.start_time.data
end_time = form.end_time.data
return render_template('page.html', form=form) …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下数据类型的大型结构化 numpy 数组:
\n\n> my_array.dtype\n= dtype([('field1', '<i4', (32,)), ('field2', '<i4', (425,)), \n ('field3', '<i4', (8021,))])\nRun Code Online (Sandbox Code Playgroud)\n\n我的目标是尽快访问任何给定的单个元素。如果我按字段名称对数组进行切片,Numba 就能够在非 python 模式下执行。
\n\n@numba.njit\ndef test_function(my_array_sliced):\n for i in range(len(my_array_sliced)):\n _ = my_array_sliced[i]\n return\n\n> %timeit test_function(my_array['field1'])\n 399 ns \xc2\xb1 10.8 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 1000000 loops each)\nRun Code Online (Sandbox Code Playgroud)\n\n这效果很好,但我意识到,通过使用“常量”字段名称稍微不同地访问我的数组,我能够在性能方面获得更好的结果:
\n\n@numba.njit\ndef test_function2(my_array):\n for i in range(len(my_array)):\n _ = my_array[i]['field1']\n return\n\n> %timeit test_function2(my_array)\n 280 ns \xc2\xb1 5.88 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个 Twitter 抓取工具,可以将推文存储到 MongoDB 中。现在我正在尝试使用 PyMongo 查询数据。
存储在我的 MongoDB 中的数据:
{
"_id": {
"$oid": "5555dc0e50f808afe0da52fe"
},
"text": "Lorem Ipsum...",
"created_at": {
"$date": "2015-05-15T10:55:16.000Z"
},
}
Run Code Online (Sandbox Code Playgroud)
以下工作非常好(但获取每一条推文):
dikt1 = {}
tweets_iterator = coll.find({},{ "text": 1, "user.screen_name":1 ,created_at': 1} )
for tweet in tweets_iterator:
dikt1[tweet['text']] = tweet['created_at']
Run Code Online (Sandbox Code Playgroud)
但是,当尝试像这样查询某些日期之后的所有日期时:
date1 = datetime.utcnow()-timedelta(days=30)
dikt1 = {}
tweets_iterator = coll.find({},{ "text": 1, "user.screen_name":1 , 'created_at': {'$gt': date1}} )
for tweet in tweets_iterator:
dikt1[tweet['text']] = tweet['created_at']
Run Code Online (Sandbox Code Playgroud)
最后一行“for tweets_iterator:”给出了一个错误:
OperationFailure:数据库错误:无法规范化查询:BadValue 不支持的投影选项:created_at:{$gt:new Date(1434480147418)}
有什么建议吗?
谢谢!
我有一个熊猫系列 df(日期 = 索引):
2015-09-10 58
2015-09-11 40
2015-09-12 33
2015-09-13 42
2015-09-14 22
2015-09-15 88
2015-09-16 99
2015-09-17 124
Run Code Online (Sandbox Code Playgroud)
我想将日期从 2015-09-11 删除到 2015-09-15,所以我的 df 看起来像:
2015-09-10 58
2015-09-16 99
2015-09-17 124
Run Code Online (Sandbox Code Playgroud)
我试过使用 df.drop["2015-09-11":"2015-09-15"],但出现错误:
TypeError: 'instancemethod' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
谢谢!
我一直在努力想出一个脚本,让我每秒可以多次截取我的桌面。我用的是Win10。
皮尔:
from PIL import ImageGrab
import time
while True:
im = ImageGrab.grab()
fname = "dropfolder/%s.png" %int(time.time())
im.save(fname,'PNG')
Run Code Online (Sandbox Code Playgroud)
结果每张图像 1.01 秒。
PyScreeze ( https://github.com/asweigart/pyscreeze ):
import pyscreeze
import time
while True:
fname = "dropfolder/%s.png" %int(time.time())
x = pyscreeze.screenshot(fname)
Run Code Online (Sandbox Code Playgroud)
结果每张图像 1.00 秒。
Win32:
import win32gui
import win32ui
import win32con
import time
w=1920 #res
h=1080 #res
while True:
wDC = win32gui.GetWindowDC(0)
dcObj=win32ui.CreateDCFromHandle(wDC)
cDC=dcObj.CreateCompatibleDC()
dataBitMap = win32ui.CreateBitmap()
dataBitMap.CreateCompatibleBitmap(dcObj, w, h)
cDC.SelectObject(dataBitMap)
cDC.BitBlt((0,0),(w, h) , dcObj, (0,0), win32con.SRCCOPY)
fname = "dropfolder/%s.png" %int(time.time())
dataBitMap.SaveBitmapFile(cDC, fname) …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制一个简单的线条图并将背景图像插入到图中.
示例pic(使用cat.jpg和dog.jpd):
目前我有一个代码绘制线条(来自熊猫数据帧)并将图像放入图中.然而,图像和线图根本不会"相互作用".
fig, ax = plt.subplots(figsize=(15,10))
cat = np.array(Image.open('cat.jpg'))
dog = np.array(Image.open('dog.jpg'))
ax.imshow(cat, extent=[0, 10, 0, 18], aspect='auto', cmap='gray',alpha=0.75)
ax.imshow(dog, extent=[10, 20, 0, 18], aspect='auto', cmap='gray',alpha=0.75)
ax.plot(df['Series'],color='#3cb8fb',alpha=0.95,linewidth=3.0)
plt.show()
Run Code Online (Sandbox Code Playgroud)