小编jjj*_*ayn的帖子

在Windows中全选和复制的最有效方法

我有一个脚本,可从第三方程序中抓取数据。目前,我正在使用模拟的键盘笔触来选择和复制数据:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('^a')
shell.SendKeys('^c')
Run Code Online (Sandbox Code Playgroud)

该脚本可以正常运行,但是由于某种原因,它使我的系统和第三方应用程序非常滞后。现在,我正在寻找更有效的方法来全选并在Windows中复制。

python windows win32gui win32com

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

Python:带有'.join'的Munging数据(TypeError:序列项0:期望字符串,找到元组)

我有以下格式的数据:

[('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)

任何建议我将如何能够转换整个列表?

谢谢!

python string tuples

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

熊猫:从每一行获取字符串的第二个字符

我在Pandas中有一系列数据,我正在尝试在col1中打印每个字符串的第二个字符.我无法弄清楚该怎么做.我可以轻松地单独打印每个字符串的第二个字符,例如:

array.col1[0][1]
Run Code Online (Sandbox Code Playgroud)

但是我想从每一行打印第二个字符,所以会有一个第二个字符的"列表".

我试过了

array.col1[0:][1]
Run Code Online (Sandbox Code Playgroud)

但这只是返回第二行作为整个col1.

有什么建议?

python string character dataframe pandas

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

Flask 和 WTForms:用于显示日期的 DatePicker 小部件

我有一个包含三个字段(目的地、开始时间和结束时间)的小型 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)

python datepicker jinja2 datefield flask

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

Python 和 Numba:尽可能快地访问结构化 numpy 数组元素

我有一个具有以下数据类型的大型结构化 numpy 数组:

\n\n
> my_array.dtype\n= dtype([('field1', '<i4', (32,)), ('field2', '<i4', (425,)), \n         ('field3', '<i4', (8021,))])\n
Run 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)\n
Run 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)

python arrays numpy numba

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

MongoDB/PyMongo:当尝试查询之后的所有日期时,BadValue 不受支持的投影选项

我已经构建了一个 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)}

有什么建议吗?

谢谢!

python twitter mongodb pymongo

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

按索引从 Pandas 系列中删除元素

我有一个熊猫系列 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)

有什么建议吗?

谢谢!

python dataframe pandas

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

Python:截取和保存屏幕截图的最快方法

我一直在努力想出一个脚本,让我每秒可以多次截取我的桌面。我用的是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)

python gtk ctypes pygtk python-imaging-library

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

将背景图像绘制到matplotlib图形

我正在尝试绘制一个简单的线条图并将背景图像插入到图中.

示例pic(使用cat.jpg和dog.jpd):

我有两张背景图片,我想用;  cat.jpg和dog.jpg

目前我有一个代码绘制线条(来自熊猫数据帧)并将图像放入图中.然而,图像和线图根本不会"相互作用".

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)

python plot matplotlib pandas

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