在 Udacity 的计算机科学简介轨道之后,我正在尝试制作一个 python 脚本来从页面中提取链接,下面是我使用的代码:
我收到以下错误
NameError:未定义名称“页面”
这是代码:
def get_page(page):
try:
import urllib
return urllib.urlopen(url).read()
except:
return ''
start_link = page.find('<a href=')
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1:end_quote]
def get_next_target(page):
start_link = page.find('<a href=')
if start_link == -1:
return (None, 0)
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1:end_quote]
return (url, end_quote)
(url, end_pos) = get_next_target(page)
page = page[end_pos:]
def print_all_links(page):
while True:
(url, …
Run Code Online (Sandbox Code Playgroud) 在此处的文档中,给出了以下代码示例cursor
:
execute block
returns (
relation char(31),
sysflag int)
as
declare cur cursor for
(select rdb$relation_name, rdb$system_flag from rdb$relations);
begin
open cur;
while (1=1) do
begin
fetch cur into relation, sysflag;
if (row_count = 0) then leave;
suspend;
end
close cur;
end
Run Code Online (Sandbox Code Playgroud)
但这也可以按如下方式完成:
execute block
returns (
relation char(31),
sysflag int)
as
begin
for select rdb$relation_name, rdb$system_flag
from rdb$relations
into relation, sysflag
do begin
suspend;
end
end
Run Code Online (Sandbox Code Playgroud)
那我为什么要用一个呢?最终上面的例子甚至不需要,execlute block
因为它只是一个简单的选择语句.所以我想这个例子太简单了,无法证明这一点.
我对一个主题感到困惑,无法在网上找到它.据我了解,当程序启动时,类加载器加载.class
文件并将它们作为具有该类型的对象存储在内存中Class
.
我的问题是我们何时使用:
Test test = new Test();
Run Code Online (Sandbox Code Playgroud)
是使用.class
文件创建新对象,还是使用Class
内存中已有的对象?
基于c ++的运行进程是否可以使用重新加载基于c ++的动态库dlopen
.
正在运行的进程将轮询新版本的动态库(使用相同的API).一旦检测到此类文件,就会发生以下一系列操作:
dlclose
dlopen
dlsym
新加载的库设置函数指针变量.在最后一个阶段,我实际上获得了所需的API并将其放在我的主代码中的函数指针中,以便稍后使用.
但是,似乎我的程序在第三阶段后意外地崩溃了.是否可能该dlclose
部分在流程虚拟空间中留下旧库的一些残余?有没有更好的方法呢?
顺便说一句,在Windows中它使用LoadLibrary, FreeLibrary and GetProcAddress
而不是使用dlopen, dlclose and dlsym
.
我的项目组装有问题:
D:...\Main.java:112: 错误:编码 windows-1251 的不可映射字符 (0x98)
robots.getBrowserControl().findElement(By.xpath("//div[.='??????) ??']“))。点击();
此错误行:
robot.getBrowserControl().findElement(By.xpath("//div[.='????????']")).click();
图片: 错误,IDEA 设置。右下角选择了UTF-8。我不确定,但也许它就像符号“?”
这是我的 gradle 文件
plugins {
id 'java'
}
group 'ru.grbi3yh.processthesefiles'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
jar {
baseName = 'ProcessthFiles'
}
apply plugin: 'application'
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.41.0'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
}
Run Code Online (Sandbox Code Playgroud) 为了连接 Amazon Redshift,我使用 pythonpsycopg2
模块将数据集注入到 Amazon Redshift 上,并且运行良好。只是提一下,我使用 Redshift 的端点 URL 通过psycopg2
下面使用 python DB API v2.0 的连接进行连接。Amazon Redshift 还提供 JDBC 或 ODBC URL 进行连接,但我没有使用它。
伪代码:
import psycopg2
try:
connection = psycopg2.connect(user = "redshift_user",
password = "redshift_password",
host = "redshift_endpoint",
port = "5432",
database = "redshift_database")
cursor = connection.cursor()
Run Code Online (Sandbox Code Playgroud)
注意:我还使用 Redshift 的相同端点从不同的客户端(例如 Tableau、Navicat Premium 或在其下使用 JDBC/ODBC 驱动程序的其他 SQL 客户端)连接它。
但最近亚马逊给我发了关于 JDBC 驱动程序更新的消息,
AWS Redshift 发现 Redshift JDBC 驱动程序中存在导致服务器意外重启的问题,该问题随后在最新的 Redshift JDBC 驱动程序中得到修复。US-WEST-2 区域中的一些集群正在注册来自旧版本 JDBC 驱动程序的连接,可能会受到此问题的影响。
请将您的驱动程序升级到最新版本:1.2.36.1060,可供下载[1]。
Java 14 中扩展的 switch 表达式,除了程序员/审阅者的视觉清晰度之外,switch 表达式的需求并不明确。是吗
参考: https: //www.techgeeknext.com/java/java14-features
JDK 14版本:
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
Run Code Online (Sandbox Code Playgroud)
JDK 14 字节代码
0: iconst_1
1: istore_1
2: iload_1
3: tableswitch { // 1 to 7
1: 44
2: 44
3: 44
4: 49
5: 54
6: 54
7: 59
default: 64
}
44: bipush 6
46: goto 65 …
Run Code Online (Sandbox Code Playgroud) 我在项目中使用 Apache Tomcat JDBC 连接池库并相应地配置了 context.xml 文件。我的应用程序实例需要在多个位置运行,但应用程序上的负载会有所不同,因此我想根据运行时特定实例的客户大小修改 maxActive 大小和其他一些属性。
<Context path="/abc"
docBase="abc"
debug="5"
reloadable="false"
crossContext="true">
<Resource name="jdbc/abc"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="xxxxx"
url="xxxxxxx"
username="xxxxx" password="xxxxxx"
maxActive="20"
initialSize="0"
...
/>
</Context>
Run Code Online (Sandbox Code Playgroud) 我有两个枚举:
public enum MainMenuOptions {
EXIT("Exit"),
VIEW_RESERVATIONS("View Reservations By Host"),
CREATE_RESERVATION("Create A Reservation"),
EDIT_RESERVATION("Edit A Reservation"),
CANCEL_RESERVATION("Cancel A Reservation");
private final String message;
MainMenuOptions(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public static List<String> asListString() {
return Arrays.stream(MainMenuOptions.values())
.map(MainMenuOptions::getMessage)
.collect(Collectors.toList());
}
}
Run Code Online (Sandbox Code Playgroud)
public enum HostSelectionMethodOptions {
FIND_ALL("Find all"),
FIND_BY_LASTNAME_PREFIX("Find by last name prefix"),
FIND_BY_CITY_STATE("Find by city & state");
String message;
HostSelectionMethod(String message) {
this.message = message;
}
public String getMessage() {
return …
Run Code Online (Sandbox Code Playgroud) 给定一个生成器:
\nmyVec1 = rand(0:4, 2)\nmyVec2 = rand(0:4, 8)\n\nmyGen = (val1 + val2 for val1 in myVec1, val2 in myVec2)\n
Run Code Online (Sandbox Code Playgroud)\n这基本上是一个有 2 列的矩阵。通过使用可以看出collect(myGen)
。
如何创建一个每次调用生成两个值(基本上是一列)的生成器?
\n从概念上讲,相当于:
\nfor myCol in eachcol(collect(myGen))\n @show myCol;\nend\n
Run Code Online (Sandbox Code Playgroud)\n只是没有对矩阵进行任何显式分配。
\n我可以myGen
针对以下情况进行包装吗:
for value1, value2 in myGen\n dosomethingelse1(value1, value2)\nend\n
Run Code Online (Sandbox Code Playgroud)\n换句话说,我正在寻找一种方法来创建一个生成器,它一次返回 2 个(或更多?)连续值,并且可以在循环中使用它来执行此操作。
\n所以基本上,我们在生成器中创建一个二维数组,我想立即访问整个切片。我可以使用实际数组来完成它eachcol
,eachrow
但是生成器呢?
这是一个测试用例:
\nmyVec1 = rand(0:4, 2);\nmyVec2 = rand(0:4, 800);\n\n@btime begin\n myMat = [val1 + val2 for val1 in …
Run Code Online (Sandbox Code Playgroud)