我想使用 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)
进入登录页面后,我只需输入登录详细信息,然后登录后我希望能够使用请求库从特定页面获取信息。我怎样才能让它发挥作用?
我试图打印出在选项菜单中选择的值,但每次运行代码时仅打印第一个值,即使我将选择更改为 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) 我有以下代码可以使用 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 已经如此优化以至于无法对其速度进行任何更大的改进?
我有一份清单
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.
有没有办法在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中打开,但是想知道是否有其他方法或模块可以用来在打开时更新工作表.
我在 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 中创建的界面中。
我尝试使用以下代码向单元格 A1 添加注释,这会导致 jupyter 笔记本冻结。重新启动时,我注意到 A1 上插入了一条空注释。
sht.range("A1").api.AddComment="My comment"
Run Code Online (Sandbox Code Playgroud)
如何向单元格添加注释?实际的VBA是
sht.Range("A1").AddComment "My comment"
我想在文本字段上创建一个保持固定位置的标签。我的手机上有一个应用程序,其标签如下所示,我正在尝试设计类似的东西:
正如所见,无论是否有人在字段中键入,标签总是固定在位置上。我在当前代码中输入“Jay”,Customer Contact Field
标签从字段内开始,然后移动到悬挂在边界处。或者也许颤振是不可能的?
child:TextField(
decoration: InputDecoration(
labelText: 'Customer Contact')),
Run Code Online (Sandbox Code Playgroud) 我在更新可填写 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 可以在这里找到
我正在尝试创建一个表格小部件,我可以在其中删除音频文件并用文件名、文件大小等填充表格。我的代码如下。我还没有实现用于读取 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) 我有以下日历和代码。我怎样才能让月份只有 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) 我正在寻找一种有效的方法来使用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 )。
我有以下代码从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)