我正在过滤包含3个以上项目的行
perl -ne 'print if split > 2' file.txt
Run Code Online (Sandbox Code Playgroud)
但是当我想要过滤少于3个项目的行时,我无法使用
perl -ne 'print if split < 2' file.txt
#Unterminated <> operator at -e line 1.
Run Code Online (Sandbox Code Playgroud)
我可以用其中任何一个来解决它
perl -ne 'print if not split > 2' file.txt
perl -ne 'print if 2 > split' file.txt
Run Code Online (Sandbox Code Playgroud)
但是我想知道为什么表达式只会失败一个<,>.
我想在 docker 容器中通过 cron 重复调用一个脚本,但是当我从一次性执行切换到通过 cron 执行时,官方 python 镜像似乎突然找不到 python。
Dockerfile:
FROM python:3.7-slim
COPY main.py /home/main.py
#A: works
CMD [ "python", "/home/main.py" ]
#B: doesn't work
#RUN apt-get update && apt-get -y install -qq --force-yes cron
#COPY hello-cron /etc/cron.d/hello-cron
#CMD ["cron", "-f"]
Run Code Online (Sandbox Code Playgroud)
主要.py
import time
for i in range(90000):
print(i)
time.sleep(5000)
Run Code Online (Sandbox Code Playgroud)
你好-cron:
* * * * * root python /home/main.py > /proc/1/fd/1 2> /proc/1/fd/2
#
Run Code Online (Sandbox Code Playgroud)
当我在 Dockerfile 中将 A 切换为 B 时,错误消息是:/bin/sh: 1: python: not found
谢谢大家的快速回复!添加PATH=/usr/local/bincron …
import java.util.Scanner;
public class Hw2JamesVaughn {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter a year: ");
int year = input.nextInt();
if((year < 1582) == (year % 4==0))
System.out.println(year + " is a leap year");
else
System.out.println(year + " is not a leap year");
if((year > 1582) == (year % 100 != 0) || (year % 400 == 0))
System.out.println(year + " is a leap year");
else
System.out.println(year + " is not a leap year");
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试behead.hs从 Ubuntu 20.04 (WSL1) 上的 pandoc 教程编译脚本。我可以使用
stack exec -- ghc behead.hsor成功编译它,
stack --resolver lts-16.25 exec -- ghc behead.hs
但是使用pandoc-types-1.20并且我需要pandoc-types-1.22所以我尝试
stack --resolver nightly-2020-12-07 exec -- ghc behead.hs
(最早的夜间功能pandoc-types-1.22是2020-09-20,失败并出现与下面相同的错误)
这产生:
Preparing to install GHC (tinfo6) to an isolated location.
This will not interfere with any system-level installation.
Already downloaded.
ghc-pkg: Couldn't open database /home/me/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.2/lib/ghc-8.10.2/package.conf.d for modification: {handle: /home/me/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.2/lib/ghc-8.10.2/package.conf.d/package.cache.lock}: hLock: invalid argument (Invalid argument)
make[1]: *** [ghc.mk:973: install_packages] Error 1
make: …Run Code Online (Sandbox Code Playgroud) haskell pandoc ghc-pkg haskell-stack windows-subsystem-for-linux
我想将一些文件复制到临时目录中。但File我注释的@TempDir似乎没有被注入。
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import java.io.File;
public class MyTempFileTest {
@TempDir
public File tempFolder;
@Test
public void testTempFolder() {
Assertions.assertNotNull(tempFolder);
}
}
Run Code Online (Sandbox Code Playgroud)
结果是org.opentest4j.AssertionFailedError: expected: not <null>
相反,我希望它是一个随机临时目录,就像@Rule TemporaryFolder tmpSudokus = new TemporaryFolder()Junit4 中的情况一样。
根据文档我可以注释一个Java.io.File.
如果我尝试将 tempDir 作为目录传递
@Test
public void testTempFolderParam(@TempDir File tempFolder) {
Assertions.assertNotNull(tempFolder);
}
Run Code Online (Sandbox Code Playgroud)
我明白了org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.io.File tempFolder] in executable [public void my.package.MyTempFileTest.testTempFolderParam(java.io.File)].
该测试是 android 项目的一部分,我的依赖项是:
dependencies {
testImplementation …Run Code Online (Sandbox Code Playgroud) 我已经在 google colab 上训练了一个模型,并希望将其加载到我的本地计算机上。但我明白了ModuleNotFoundError: No module named 'sklearn.svm._classes'。在colab上加载模型是没有问题的。
合作实验室:
[1] import sys
sys.version
'3.6.9 (default, Nov 7 2019, 10:44:02) \n[GCC 8.3.0]'
[2] import joblib
import numpy as np
from sklearn import svm
clf = svm.SVC(gamma=0.001)
clf.fit(np.random.rand(9,8).astype(int), np.arange(9))
joblib.dump(clf, 'simple_classifier')
[3] joblib.load('simple_classifier')
Run Code Online (Sandbox Code Playgroud)
我的本地机器:
>>> import sys
>>> sys.version
'3.6.9 (default, Nov 7 2019, 10:44:02) \n[GCC 8.3.0]'
>>> import numpy as np
>>> import joblib
>>> from sklearn import svm
>>> joblib.load('simple_classifier')
Traceback (most recent call last):
File "<stdin>", line …Run Code Online (Sandbox Code Playgroud) 我想创建一个从 openAPI 规范文件生成客户端并使用该客户端的 gradle java 应用程序。所以我创建了一个 java 应用程序gradle init(type:application, language:Java, DSL:groovy, test-framework:Junit Jupiter, project-name:simple-java-app, package-structure: a.aa)。
我可以创建一个second/loc/src/main/java包含包b.bb和类的新源文件夹Foo。并与以下build.gradle
plugins {
id 'java'
id 'application'
}
repositories {
jcenter()
}
sourceSets {
second {
java {
srcDir 'second/loc/src/main/java'
}
}
}
compileJava {
source += sourceSets.second.java
}
dependencies {
implementation 'com.google.guava:guava:29.0-jre'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}
application {
mainClassName = 'a.aa.App'
}
test {
useJUnitPlatform()
}
Run Code Online (Sandbox Code Playgroud)
主类可以访问Foo:
package a.aa; …Run Code Online (Sandbox Code Playgroud) 我可以通过源集成功地将生成的 openapi 客户端添加到我的项目中。但是然后我必须将依赖项复制到主项目中build-gradle,解决冲突 - >我认为将客户端作为一个拥有自己的子项目将是一个更好的设计build.gradle。
所以我添加include = 'build:openapi-java-client'了我的settings.gradle和compile project(':build:openapi-java-client')我的依赖项。这样我就有了以下文件
build.gradle::
plugins {
id 'java'
id 'application'
id "org.openapi.generator" version "4.3.1"
}
repositories {
jcenter()
}
openApiGenerate {
generatorName = "java"
inputSpec = "$rootDir/specs/petstore.yaml".toString()
outputDir = "$buildDir/openapi-java-client".toString()
apiPackage = "org.openapi.example.api"
invokerPackage = "org.openapi.example.invoker"
modelPackage = "org.openapi.example.model"
configOptions = [
dateLibrary: "java8"
]
}
dependencies {
implementation 'com.google.guava:guava:29.0-jre'
testImplementation 'junit:junit:4.13'
compile project(':build:openapi-java-client')
}
application {
mainClassName = 'a.aa.App'
} …Run Code Online (Sandbox Code Playgroud) 我有一个可用的 docker 容器,想在 Firefox 上迁移到 selenium 3.141 的 lambda 层。工作容器的 Dockerfile 是:
FROM python:3.7-slim
RUN /usr/local/bin/python -m pip install --upgrade pip
RUN pip install selenium==3.141.0
RUN apt-get update
RUN apt-get -y install wget bzip2 firefox-esr #68.12.0esr
WORKDIR /tmp
RUN wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
RUN tar -zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)
当我在此容器中执行以下操作时,Firefox会创建一个对象。
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.headless = True
Firefox(options=opts, service_log_path='/home/geckodriver.log')
Run Code Online (Sandbox Code Playgroud)
对于 lambda 层,我使用amazonlinux图像进行本地测试。在 aws 上,我提供的一个 zip 文件将被提取到/opt,所以我想把所有东西都放进去/opt,看看它是否工作。
我的 …
python firefox selenium selenium-webdriver aws-lambda-layers
我正在完成一本班轮书并且遇到了
perl -pe 's/$/\n/' file
Run Code Online (Sandbox Code Playgroud)
通过将行的结尾设置为新行,在每行之后插入一个空行,从而在现有换行符中添加一个新行,从而产生一个空行.因为这是第一个没有g模式结束的例子,我试过了
perl -pe 's/$/\n/g' file
Run Code Online (Sandbox Code Playgroud)
这导致行之间有2个空行.
我原本预计没有区别,因为$每行只有一个,所以替换所有这些应该与替换第一个相同.
这里发生了什么?