小编ihi*_*wer的帖子

文本处理 - Python与Perl性能

这是我的Perl和Python脚本,用于从大约21个日志文件进行一些简单的文本处理,每个大约300 KB到1 MB(最大)x重复5次(总共125个文件,由于日志重复5次).

Python代码(修改后使用编译re和使用的代码re.I)

#!/usr/bin/python

import re
import fileinput

exists_re = re.compile(r'^(.*?) INFO.*Such a record already exists', re.I)
location_re = re.compile(r'^AwbLocation (.*?) insert into', re.I)

for line in fileinput.input():
    fn = fileinput.filename()
    currline = line.rstrip()

    mprev = exists_re.search(currline)

    if(mprev):
        xlogtime = mprev.group(1)

    mcurr = location_re.search(currline)

    if(mcurr):
        print fn, xlogtime, mcurr.group(1)
Run Code Online (Sandbox Code Playgroud)

Perl代码

#!/usr/bin/perl

while (<>) {
    chomp;

    if (m/^(.*?) INFO.*Such a record already exists/i) {
        $xlogtime = $1;
    }

    if (m/^AwbLocation (.*?) insert into/i) …
Run Code Online (Sandbox Code Playgroud)

python regex perl performance text-processing

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

使用Selenium Python和chromedriver截取整页的屏幕截图

尝试了各种方法之后......我偶然发现这个页面采用了chromedriver,selenium和python的全页截图.

原始代码在这里:http://seleniumpythonqa.blogspot.com/2015/08/generate-full-page-screenshot-in-chrome.html(我在下面的帖子中复制代码)

它使用PIL,效果很棒!!!!! 然而,有一个问题......它捕获整个页面的固定标题和重复,并且在页面更改期间也错过了页面的某些部分.示例网址截取屏幕截图:

http://www.w3schools.com/js/default.asp

如何避免使用此代码重复标头...或者是否有更好的选项只使用python ... (我不知道java,不想使用java).

请参阅下面的当前结果和示例代码的屏幕截图.

带有重复标题的整页截图

test.py

"""
This script uses a simplified version of the one here:
https://snipt.net/restrada/python-selenium-workaround-for-full-page-screenshot-using-chromedriver-2x/

It contains the *crucial* correction added in the comments by Jason Coutu.
"""

import sys

from selenium import webdriver
import unittest

import util

class Test(unittest.TestCase):
    """ Demonstration: Get Chrome to generate fullscreen screenshot """

    def setUp(self):
        self.driver = webdriver.Chrome()

    def tearDown(self):
        self.driver.quit()

    def test_fullpage_screenshot(self):
        ''' Generate document-height screenshot '''
        #url = "http://effbot.org/imagingbook/introduction.htm"
        url = …
Run Code Online (Sandbox Code Playgroud)

python selenium webpage-screenshot selenium-chromedriver

27
推荐指数
13
解决办法
4万
查看次数

pandas 数据框过滤器为所有行返回 True。如何?

嗨,我有一个过滤器“m”集,它足够灵活,可以由我进行更改。有时,我想按 Car 或 x_acft_body 或任何其他各种字段等进行过滤。有时我想通过注释和取消注释所需的行来返回所有行。但不更改后续代码,在过滤器 'm' 行之后。

当我不想应用过滤器时,我如何才能拥有一个对所有行都返回 true 的过滤器?例如,类似的东西,1==1但我知道这行不通。

我不想设置dfdata.somefield.notnull()等等,因为我不太确定这个字段是否总是不为空。我也不想将后续代码更改dfdata.groupby. ie 没有[m]

# set filter if needed
m = (   1==1 #& return true at all times
#         (dfdata.Car == 'PG') #&
#         (dfdata.x_acft_body == 'N')# &
#         (dfdata.Car.isin(['PG', 'VJ', 'VZ']))
)


dft1 = dfdata[m].groupby(['FLD1']).agg({'FLD2': 'count'})
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

8
推荐指数
1
解决办法
1972
查看次数

Python中Perl(<>)的等价物是什么?fileinput无法按预期工作

在Perl中使用:

while (<>) {
    # process files given as command line arguments
}
Run Code Online (Sandbox Code Playgroud)

在Python中我发现:

import fileinput
for line in fileinput.input():
    process(line)
Run Code Online (Sandbox Code Playgroud)

但是,当命令行中给出的文件不存在时会发生什么?

python test.py test1.txt test2.txt filenotexist1.txt filenotexist2.txt test3.txt 被作为论据.

我尝试了各种使用方法try: except: nextfile,但我似乎无法使其工作.

对于上面的命令行,脚本应该运行test1-3.txt但只是在找不到文件时转到下一个文件静默.

Perl非常好.我在网上搜索过这个,但我无法在任何地方找到答案.

python perl file-io file command-line-arguments

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

Google Colab 中的编号标题和目录

有没有办法在 Google Colab 中启用编号的标题和目录?

类似问题:markdown - jupyter notebooks 中的编号标题 - Jupyter Notebook 的堆栈溢出(需要 nbextension)。

需要 Google Colab 的解决方案。

markdown tableofcontents heading jupyter-notebook google-colaboratory

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

phpexcel - 使用excel模板(图表丢失)php

我试图将phpexcel与我自己的模板文件一起使用.phpexcel加载文件并将数据写入某些单元格A2,A3,A4,然后打开包含新数据的输出文件.

我的模板文件内置了图表..我想要phpexcel做的就是填充单元格中的值而不要触摸图表.并且,打开新文件.(请注意,我不想在代码中创建图表.我希望图表在我的模板中以与我最初创建的格式相同的格式预先存在).只有数据才能更新.

但是,当我尝试这样做时...图表本身会从生成的文件中丢失.尝试各种方式后..仍然失败.

并且,我从http://phpexcel.codeplex.com/discussions/397263找到了以下代码

require_once 'Classes/PHPExcel.php'; 
/** PHPExcel_IOFactory */
include 'Classes/PHPExcel/IOFactory.php';




$target ='Results/';
$fileType = 'Excel2007';   
$InputFileName = $target.'Result.xlsx';   
$OutputFileName =  $target . '_Result.xlsx';

 //Read the file (including chart template) 
$objReader = PHPExcel_IOFactory::createReader($fileType); 
$objReader->setIncludeCharts(TRUE);
$objPHPExcel = $objReader->load($InputFileName); 

 //Change the file 


$objPHPExcel->setActiveSheetIndex(0)
// Add data
            ->setCellValue('C3','10' )
            ->setCellValue('C4','20' )
            ->setCellValue('C5','30')
            ->setCellValue('C5','40' );

 //Write the file (including chart)

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType); 
$objWriter->setIncludeCharts(TRUE);
$objWriter->save($OutputFileName);
Run Code Online (Sandbox Code Playgroud)

上面的代码在excel 2010中工作,现在让我的图表保持正常......但是当我尝试使用文件类型"Excel5"时它仍然不起作用.

它会引发以下错误:

    Fatal error: Call to undefined method PHPExcel_Reader_Excel5::setIncludeCharts()
 in D:\IT\bfstools\PHPExcel\MyExamples\test1.php …
Run Code Online (Sandbox Code Playgroud)

php phpexcel

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

从远程到本地计算机的jupyter服务器dfdata.to_clipboard。怎么样?

在远程计算机上运行dfdatajupyter服务器笔记本中有一个数据

我想将远程计算机内存中的数据帧访问到本地计算机,例如将粘贴dfdata到Excel。

正常情况下(当笔记本服务器在本地运行时),我dfdata.to_clipboard() 可以将数据帧复制到剪贴板,现在可以将其粘贴到Excel。

但是,由于s dfdata现在位于远程计算机上,dfdata.to_clipboard()因此s剪贴板中没有该数据帧的副本。

如何做到这一点,即将粘贴数据帧从远程计算机复制到本地运行的Excel,文本文件等?to_clipboard()由于设计上的任何安全限制,这些替代方法(如果设计)将无法在远程服务器上运行。

pandas jupyter-notebook

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

python pandas:将开始和结束日期时间范围(存储为2列)转换为单个行(eqpt利用率)

嗨,我有一个像df一样的数据集.我分别提供图像和样本数据帧.

我想将原始数据帧(df)转换为转换后的数据帧(dft),以便我可以看到每个设备在24小时内(甚至更长时间,最多9天)的利用率...每隔5分钟.然后可以将dft用于绘图......描述的工具提示等.

当然,如果你有任何其他更简单的解决方案,而不是我下面的大纲也可以很好.

原始数据帧(df)

在此输入图像描述

以下是上面的数据框(df),您可以将其复制粘贴到jupyter来创建它:

from io import StringIO
import pandas as pd

dfstr = StringIO(u"""
eqpt;starttm;endtm;use_count;desc
AT1;2017-04-01 10:35;2017-04-01 11:05;2;test asdf1
AT2;2017-04-01 11:00;2017-04-01 11:30;5;test asdf2
AT1;2017-04-01 11:00;2017-04-01 11:30;4;test asdf3
AT3;2017-04-01 10:45;2017-04-01 11:45;3;test asdf4
CBL1;2017-04-01 11:10;2017-04-1 11:40;4;test asdf5
""")
df = pd.read_csv(dfstr, sep=";")
df
Run Code Online (Sandbox Code Playgroud)

我想将df转换为每个eqpt的各个行...比如说起始时间和结束时间从2017-04-01 00:00到23:55,这样我就可以知道每个5分钟网格中的设备利用率以及绘图并重新抽样,在每1小时内说出最大值,以便进行汇总等.

转换数据帧(dft)

这是生成的变换图像..以及样本结果数据帧(dft)如下:

此数据框的列来自原始数据框的"eqpt".

刚才意识到,如果需要保持use_counts只聚合一个数字,那么描述列不能在同一个数据帧dft中.因此,请提供任何可以实现相同目的的替代解决方案,但将列保持为float仅用于计数,描述文本在其他地方聚合..以后可以合并或查找.

在此输入图像描述

以下是上面的数据帧(dft):

dftstr = StringIO(u"""
datetime;Item;AT1;AT2;AT3;CBL1;AT_n
2017-04-01 10:30;use_count;;;;;
2017-04-01 10:35;use_count;2;;;;
2017-04-01 10:40;use_count;2;;;;
2017-04-01 10:45;use_count;2;;3;;
2017-04-01 10:50;use_count;2;;3;;
2017-04-01 10:55;use_count;2;;3;;
2017-04-01 11:00;use_count;6;5;3;;
2017-04-01 11:05;use_count;4;5;3;;
2017-04-01 11:10;use_count;4;5;3;4;
2017-04-01 11:15;use_count;4;5;3;4;
2017-04-01 11:20;use_count;4;5;3;4;
2017-04-01 11:25;use_count;4;5;3;4; …
Run Code Online (Sandbox Code Playgroud)

python time-series pandas timeserieschart

4
推荐指数
1
解决办法
1095
查看次数

从简单网站抓取数据 - 将"发布"更改为"获取"

我访问了这个网站:http: //www.avcodes.co.uk/airlcodesearch.asp

并且,选择了最后一个选项:

Select a letter for ICAO Codes: and chose "B"
Run Code Online (Sandbox Code Playgroud)

然后点击 Submit.

我使用Firefox中的Tamper Data和Live HTTP Headers监控进度.

并且,一切都很好..并且实现相同效果所需的直接URL是:

http://www.avcodes.co.uk/airllistres.asp?statuslst=Y&iataairllst=&icaoairllst=B&B1=Submit

但是,使用上述URL时,不会返回数据.

我缺少什么,如何找到正确的URL.

这个练习的目的是一旦我知道URL ..我将使用python脚本循环到A到Z并获取所有页面的内容.

请帮忙.

python http-get http-post web-scraping

0
推荐指数
1
解决办法
1490
查看次数

python pandas - 获取唯一计数、描述文本示例(类似于mysql group_concat)

说我有这样的样本数据

在此处输入图片说明

我想为大型数据集生成带有 desc1 和 desc2 示例文本的摘要数据框..(大约 20,000 行)

我将有更多的列,如 desc3、desc4 等……我可能希望在结果中包含额外的 desc_n 样本。

在此处输入图片说明

目的是了解唯一名称是什么(分组依据)..然后查看连接的其他字段的示例文本和唯一 desc1 的计数

python pandas

0
推荐指数
1
解决办法
174
查看次数