小编Wes*_*est的帖子

如何在 Python 中将 Requests 库与 Selenium 一起使用

我想使用 Selenium 登录网页,并使用登录的会话使用 Requests 库执行后续请求。到目前为止我的代码如图所示:

from selenium import webdriver
import requests

driver = webdriver.Chrome()
driver.get("https://www.linkedin.com/uas/login?") 
Run Code Online (Sandbox Code Playgroud)

进入登录页面后,我只需输入登录详细信息,然后登录后我希望能够使用请求库从特定页面获取信息。我怎样才能让它发挥作用?

python selenium python-requests

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

从 Python 中的 Tkinter OptionMenu 获取值

我试图打印出在选项菜单中选择的值,但每次运行代码时仅打印第一个值,即使我将选择更改为 b 或 c。不知道我错在哪里。这是我的代码:

from tkinter import *
window=Tk()
window.geometry("700x400")

options=StringVar(window)
options.set("a")
menu=OptionMenu(window,options, "a","b","c")
menu.grid(row=2,column=2)
selection=options.get()
print(selection)
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

加速 itertools 与 cython 的组合

我有以下代码可以使用 itertools 生成指定范围内的所有可能组合,但我无法通过使用 cython 代码来提高速度。原始代码是这样的:

from itertools import *

def x(e,f,g):
    a=[]        
    for c in combinations(range(e, f),g):
        d = list((c))
        a.append(d) 
Run Code Online (Sandbox Code Playgroud)

声明 cython 的类型后:

from itertools import *

cpdef x(int e,int f,int g):        
    cpdef tuple c
    cpdef list a
    cpdef list d

    a=[]        
    for c in combinations(range(e, f),g):    
        d = list((c))
        a.append(d)
Run Code Online (Sandbox Code Playgroud)

我将后者保存为test_cy.pyx并使用编译cythonize -a -i test_cy.pyx

编译后,我使用以下代码创建了一个新脚本并运行它:

import test_cy

test_cy.x(1,45,6) 
Run Code Online (Sandbox Code Playgroud)

我没有得到任何显着的速度提升,仍然花费了与原始脚本相同的时间,大约 10.8 秒。

我是否做错了什么,或者 itertools 已经如此优化以至于无法对其速度进行任何更大的改进?

python cython python-itertools

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

检查列表列表中是否存在列表的最快方法

我有一份清单

a=[[1,2,3,4,5,6],[7,8,9,10,11,12]]   
Run Code Online (Sandbox Code Playgroud)

检查a另一个列表列表中是否存在任何列表的最快方法是什么b,其中

b=[[5, 9, 25, 31, 33, 36],[7,8,9,10,11,12],[10, 13, 22, 24, 33, 44]]
Run Code Online (Sandbox Code Playgroud)

如果b中存在a中的任何列表,我想将其删除.我目前正在使用此代码:

for each in a:
    for item in b:
        if set(each).issubset(item)
            a.remove(each)
Run Code Online (Sandbox Code Playgroud)

这有效但在处理大型列表时速度很慢,因此想知道是否有更好的方法.上面的代码给出了以下结果:

print(a)
[[1, 2, 3, 4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)

我不担心顺序,例如,如果在一个列表a[1,2,3,4,5,6]我想要的,如果存在一个列表将其删除[1,2,3,4,5,6][3,4,1,6,2,5]列表等b.

python list set

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

使用Python实时更新Excel工作表

有没有办法在Excel中打开时实时更新电子表格?我有一个名为Example.xlsx的工作簿,它在Excel中打开,我有以下python代码,它尝试使用字符串'ID'更新单元格B1:

import openpyxl

wb = openpyxl.load_workbook('Example.xlsx')
sheet = wb['Sheet']
sheet['B1'] = 'ID'

wb.save('Example.xlsx')
Run Code Online (Sandbox Code Playgroud)

在运行脚本时,我收到此错误:

PermissionError: [Errno 13] Permission denied: 'Example.xlsx'

我知道它,因为该文件当前在Excel中打开,但是想知道是否有其他方法或模块可以用来在打开时更新工作表.

python excel openpyxl

4
推荐指数
2
解决办法
8566
查看次数

如何在Python QT Designer中插入Web浏览器

我在 QT Designer 5 中创建了一个简单的用户界面,并希望包含一个显示网页的小部件。我使用以下代码将 ui 文件与 python 一起使用:

from PyQt5 import uic, QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)
window = uic.loadUi("test.ui")
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

似乎没有一个小部件可以用来在 QT Designer 中插入 Web 浏览器小部件,因此我正在寻找一个小部件来通过使用类或其他东西来实现此功能,并将该小部件添加到已在 Designer 中创建的界面中。

python pyqt qt-designer pyqt5 qwebengineview

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

如何使用 Xlwings 将注释添加到 Excel 中的单元格

我尝试使用以下代码向单元格 A1 添加注释,这会导致 jupyter 笔记本冻结。重新启动时,我注意到 A1 上插入了一条空注释。

sht.range("A1").api.AddComment="My comment"
Run Code Online (Sandbox Code Playgroud)

如何向单元格添加注释?实际的VBA是

sht.Range("A1").AddComment "My comment"

python excel xlwings

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

如何在flutter中创建固定的Text标签

我想在文本字段上创建一个保持固定位置的标签。我的手机上有一个应用程序,其标签如下所示,我正在尝试设计类似的东西:

在此输入图像描述

正如所见,无论是否有人在字段中键入,标签总是固定在位置上。我在当前代码中输入“Jay”,Customer Contact Field 标签从字段内开始,然后移动到悬挂在边界处。或者也许颤振是不可能的?

child:TextField(
       decoration: InputDecoration(
       labelText: 'Customer Contact')),
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

使用 PyPDF2 更新可填写的 pdf

我在更新可填写 pdf 中的命名字段时遇到问题。我的代码如图所示:

from PyPDF2 import PdfFileReader, PdfFileWriter

reader = PdfFileReader("invoice_template.pdf")
page = reader.getPage(0)

data_dict = {
    "business_name_1": "Consulting",
    "customer_name": "company.io",
    "customer_email": "example@icloud.com",
}

writer = PdfFileWriter()
writer.updatePageFormFieldValues(page, fields=data_dict)
writer.addPage(page)

with open("newfile.pdf", "wb") as fh:
    writer.write(fh)
Run Code Online (Sandbox Code Playgroud)

myfile.getFormTextFields()我在调用之前和之后检查了字段字典updatePageFormFieldValues(),它们确实得到了更新。但是生成的 pdf 中没有任何字段值。不确定我做错了什么。我正在使用的 pdf 可以在这里找到

python pdf pypdf

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

如何将文件放入 PyQt5 中的 QTableWidget 中

我正在尝试创建一个表格小部件,我可以在其中删除音频文件并用文件名、文件大小等填充表格。我的代码如下。我还没有实现用于读取 DragEnterEvent 上的元数据的部分,因为该表甚至不接受任何类型的删除。

from PyQt5 import QtCore, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(982, 615)
        MainWindow.setAcceptDrops(True)
        MainWindow.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(360, 0, 271, 181))
        self.label.setText("")
        self.label.setObjectName("label")
        self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
        self.tableWidget.setGeometry(QtCore.QRect(10, 200, 701, 331))
        self.tableWidget.setAcceptDrops(True)
        self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
        self.tableWidget.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
        self.tableWidget.setDefaultDropAction(QtCore.Qt.CopyAction)
        self.tableWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.tableWidget.setShowGrid(False)
        self.tableWidget.setSortingEnabled(True)
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.horizontalHeader().setVisible(True)
        self.tableWidget.verticalHeader().setVisible(False)
        self.tableWidget.setRowCount(6)
        self.tableWidget.setColumnCount(6)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 982, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.titleUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def dragEnterEvent(self, event):
        event.accept()

    def dropEvent(self, event):
        event.accept()

    def titleUi(self, …
Run Code Online (Sandbox Code Playgroud)

python drag-and-drop file qtablewidget pyqt5

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

如何更改 Flutter table_calendar 包中的标题格式

我有以下日历和代码。我怎样才能让月份只有 3 个字母,例如 Nov 2021 而不是 October 2021。

在此输入图像描述

 Container(
      height: MediaQuery.of(context).size.height*0.3,
      // width: MediaQuery.of(context).size.width*0.3,
      color: Colors.white,
      child: TableCalendar(
        headerStyle: HeaderStyle(
          titleTextStyle: TextStyle(fontSize: 12)
        ),
      shouldFillViewport: true,
      rowHeight:MediaQuery.of(context).size.height*0.02,
      firstDay: DateTime.utc(2010, 10, 16),
      lastDay: DateTime.utc(2030, 3, 14),
      focusedDay: DateTime.now(),
      onDaySelected: (selectedDay, focusedDay) {
        if (!isSameDay(_selectedDay, selectedDay)) {
          // Call `setState()` when updating the selected day
          setState(() {
            _selectedDay = selectedDay;
            _focusedDay = focusedDay;
          });
        }
      }
        ),
    ),
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

在python中使用numpy生成范围内的所有可能组合

我正在寻找一种有效的方法来使用numpy或任何更快的方法在一定范围内生成所有可能的组合。我试过了:

from numpy import *
from itertools import *

dt=dtype('i,i,i,i,i,i')
fromiter(combinations(range(10000000),6), dtype=dt, count=-1)
Run Code Online (Sandbox Code Playgroud)

但是我遇到了内存错误,即使它可以正常工作,也可能需要永远的时间才能完成。我正在寻找不会重复的组合。例如,如果我需要范围(1,5)中的所有3个数字组合,我将得到(1、2、3),(1、2、4),(1、3、4),(2、3、4 )。

python combinations numpy

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

如何在python中删除列表的成员

我有以下代码从data列表中删除所有子列表的子nums集.我不明白为什么它不工作:

data=[[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
nums=[1,2]

for each in data:
    if set(nums).issubset(each):
        data.remove(each)

print(data)
>>[[1, 2, 4], [1, 3, 4], [2, 3, 4]]
Run Code Online (Sandbox Code Playgroud)

当nums是其子集时,为什么不删除[1,2,4],如下所示?

set(nums).issubset([1,2,4])
>>True
Run Code Online (Sandbox Code Playgroud)

python set

-1
推荐指数
1
解决办法
76
查看次数