小编Mar*_*k K的帖子

如何使用Python将网页转换为PDF

我正在寻找使用Python将网页打印成本地文件PDF的解决方案.一个很好的解决方案是使用Qt,在这里找到,https://bharatikunal.wordpress.com/2010/01/.

它在开始时没有用,因为我遇到了安装PyQt4的问题,因为它给出了错误消息,例如'ImportError:没有名为PyQt4.QtCore的模块'和'ImportError:没有名为PyQt4.QtCore的模块'.

这是因为PyQt4安装不正确.我曾经把库放在C:\ Python27\Lib但是它不适用于PyQt4.

实际上,它只需要从http://www.riverbankcomputing.com/software/pyqt/download下载(请注意您正在使用的正确的Python版本),并将其安装到C:\ Python27(我的情况).而已.

现在脚本运行正常,所以我想分享它.有关使用Qprinter的更多选项,请参阅http://qt-project.org/doc/qt-4.8/qprinter.html#Orientation-enum.

python pdf webpage qprinter

69
推荐指数
9
解决办法
13万
查看次数

使用Python和BeautifulSoup(将保存的网页源代码保存到本地文件中)

我使用的是Python 2.7 + BeautifulSoup 4.3.2.

我正在尝试使用Python和BeautifulSoup来获取网页上的信息.由于网页在公司网站上需要登录和重定向,因此我将目标网页的源代码复制到文件中,并将其保存为C:\中的"example.html",以方便练习.

这是原始代码的一部分:

<tr class="ghj">
    <td><span class="city-sh"><sh src="./citys/1.jpg" alt="boy" title="boy" /></span><a href="./membercity.php?mode=view&amp;u=12563">port_new_cape</a></td>
    <td class="position"><a href="./search.php?id=12563&amp;sr=positions" title="Search positions">452</a></td>
    <td class="details"><div>South</div></td>
    <td>May 09, 1997</td>
    <td>Jan 23, 2009 12:05 pm&nbsp;</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

到目前为止我编写的代码是:

from bs4 import BeautifulSoup
import re
import urllib2

url = "C:\example.html"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

cities = soup.find_all('span', {'class' : 'city-sh'})

for city in cities:
print city
Run Code Online (Sandbox Code Playgroud)

这只是测试的第一阶段,有些没有完成.

但是,当我运行它时,它会显示错误消息,使用"urllib2.urlopen"来打开本地文件似乎是不合适的.

 Traceback (most recent call last):
   File "C:\Python27\Testing.py", line 8, in <module>
     page = urllib2.urlopen(url)
   File "C:\Python27\lib\urllib2.py", …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup

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

Python计算时差,给出'年,月,日,小时,分钟和秒'1

我想知道'2014-05-06 12:00:56'和'2012-03-06 16:08:22'之间的年,月,日,小时,分钟和秒数.结果看起来像:"差异是xxx年xxx月xxx天xxx小时xxx分钟"

例如:

import datetime

a = '2014-05-06 12:00:56'
b = '2013-03-06 16:08:22'

start = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S')
ends = datetime.datetime.strptime(b, '%Y-%m-%d %H:%M:%S')

diff = start – ends
Run Code Online (Sandbox Code Playgroud)

如果我做:

diff.days
Run Code Online (Sandbox Code Playgroud)

它给出了天数的差异.

我还能做什么?我怎样才能达到想要的结果呢?

python datetime

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

使用pandas组合/合并2个不同的Excel文件/工作表

我试图结合2个不同的Excel文件.(感谢帖子将多个excel文件导入python pandas并将它们连接成一个数据帧)

我到目前为止的工作是:

import os
import pandas as pd

df = pd.DataFrame()

for f in ['c:\\file1.xls', 'c:\\ file2.xls']:
    data = pd.read_excel(f, 'Sheet1')
    df = df.append(data)

df.to_excel("c:\\all.xls")
Run Code Online (Sandbox Code Playgroud)

这是他们的样子.

在此输入图像描述

但是我想:

  1. 排除每个文件的最后几行(即File1.xls中的row4和row5; File2.xls中的row7和row8).
  2. 添加一列(或覆盖列A)以指示数据的来源.

例如:

在此输入图像描述

可能吗?谢谢.

python excel pandas

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

使用Python将文件列表添加到zip文件中

我想写一个脚本将所有'.py'文件添加到一个zip文件中.

这是我有的:

import zipfile
import os

working_folder = 'C:\\Python27\\'

files = os.listdir(working_folder)

files_py = []

for f in files:
    if f[-2:] == 'py':
        fff = working_folder + f
        files_py.append(fff)

ZipFile = zipfile.ZipFile("zip testing.zip", "w" )

for a in files_py:
    ZipFile.write(a, zipfile.ZIP_DEFLATED)
Run Code Online (Sandbox Code Playgroud)

但是它给出了一个错误:

Traceback (most recent call last):
  File "C:\Python27\working.py", line 19, in <module>
    ZipFile.write(str(a), zipfile.ZIP_DEFLATED)
  File "C:\Python27\lib\zipfile.py", line 1121, in write
    arcname = os.path.normpath(os.path.splitdrive(arcname)[1])
  File "C:\Python27\lib\ntpath.py", line 125, in splitdrive
    if p[1:2] == ':':
TypeError: 'int' object has no attribute …
Run Code Online (Sandbox Code Playgroud)

python zipfile

11
推荐指数
2
解决办法
9622
查看次数

如何使用 geom_jitter 图制作散点图可重现?

我正在使用澳大利亚艾滋病生存数据。这次要创建散点图。

为了显示不同报告传播类别(T.categ)的存活率,我以这种方式绘制图表:

data <- read.csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/MASS/Aids2.csv")

data %>%
  ggplot() +
  geom_jitter(aes(T.categ, sex, colour = status))
Run Code Online (Sandbox Code Playgroud)

它显示了一个图表。但是每次运行代码时,它似乎都会生成不同的图表。这是其中的 2 个组合。

在此处输入图片说明

代码有什么问题吗?是否正常(每个运行不同的图表)?

r scatter-plot ggplot2

8
推荐指数
2
解决办法
1966
查看次数

使用OpenCV/cv2比较和标记2张图像之间的差异(带图片)

我想使用Python和cv2比较2个图像,如下所示.

(Python 2.7 + Windows)

C:\ Original.jpg

C:\ Original.jpg

C:\ Edited.jpg

Edited.jpg

非常直接我可以在下面做并保存显示差异的图片:

import cv2 

Original = cv2.imread("c:\\Original.jpg")
Edited = cv2.imread("c:\\Edited.jpg")

diff = cv2.subtract(Original, Edited)

cv2.imwrite("c:\\diff.jpg", diff)
Run Code Online (Sandbox Code Playgroud)

结果如下:

C:\ diff.jpg

C:\ diff.jpg

此外,我希望根据比较的文件在图片中显示差异.换句话说,我希望有一个图片圈或标记差异,基于"Edited.jpg".可能吗?

(想一个方法可能是,识别"diff.jpg"中的可见区域,然后在"Edited.jpg"中为该区域画一个圆圈?)

python opencv

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

将数据帧拆分为多个重叠行

需要将其拆分为多个数据帧的数据帧。每6行(自上而下)成为一个新的数据框。

下面几行工作正常,如屏幕截图所示。

import pandas as pd

data = {'ID': ["a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22"], 
'Unit_Weight': [178,153,193,195,214,157,205,212,219,166,217,186,170,207,204,201,179,215,213,170,217,199]}

df = pd.DataFrame(data)

size = 6      # 6 rows in a new data-frame
list_of_dfs = [df.loc[i:i+size-1,:] for i in range(0, len(df),size)]

for l_d in list_of_dfs:
    print l_d
Run Code Online (Sandbox Code Playgroud)

现在我想从下往上执行此操作,并且从 df_2 开始,它包含前一个数据帧的最后 2 行。

在 Python 中让它发生的正确方法是什么?谢谢。

在此输入图像描述

python dataframe pandas

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

使用Python在2个组合数组中排列序列

我试图将13个彩色块的图片上的信息转换成一些文本.例如,我需要知道这里有多少黄色和蓝色块及其序列.

"C:\ target.jpg"

"C:\ blue.jpg"

"C:\ yellow.jpg"

我有的是:

import cv2
import numpy as np

img_rgb = cv2.imread("c:\\target.jpg")
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('c:\\blue.jpg',0) 
# template = cv2.imread('c:\\blue.jpg',0)
w, h = template.shape[::-1]

res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.99
loc = np.where (res >= threshold)

# if print loc 
# (array([  3,  31,  59,  87, 115, 143, 171, 199, 227, 255, 283, 311, 339], dtype=int64), array([7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], dtype=int64))


print str(loc[0] …
Run Code Online (Sandbox Code Playgroud)

python arrays

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

Python,pydub 分割音频文件

您好,我正在使用 pydub 分割音频文件,给出从原始文件中提取片段的范围。

\n\n

我所拥有的是:

\n\n
from pydub import AudioSegment\n\nsound_file = AudioSegment.from_mp3("C:\\\\audio file.mp3")\n\n# milliseconds in the sound track\nranges = [(30000,40000),(50000,60000),(80000,90000),(100000,110000),(150000,180000)] \n\nfor x, y in ranges:\n    new_file = sound_file[x : y]\n    new_file.export("C:\\\\" + str(x) + "-" + str(y) +".mp3", format="mp3")\n
Run Code Online (Sandbox Code Playgroud)\n\n

它对于前 3 个新文件效果很好。但其余部分则不然 - 它不会相应地分割\xe2\x80\x99。

\n\n

问题出在我给出范围的方式上吗?

\n\n

谢谢。

\n\n

添加在:

\n\n

当它变得简单时 - 例如

\n\n
sound_file[150000:180000]\n
Run Code Online (Sandbox Code Playgroud)\n\n

并将其导出为 mp3 文件。它可以工作,但只能削减 50000:80000 部分。似乎没有读取正确的范围。

\n

python pydub

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