小编Cha*_*ffy的帖子

Incrementing version numbers in Python

I'm trying to do a version number update on files in CVS.

My initial logic was to update a float (1.1 --> 1.2 --> 1.3) which worked fine until I get to 1.9, then it updates to 2.0.

I'm trying to update to 1.10 with this logic, but it's throwing an error when I try to increment the x in 1.x (ver[1] += 1).

def replace_string():
    with open(filename) as f:
        found = False
    #for line in fileinput.input(filename, inplace=1):
        for line …
Run Code Online (Sandbox Code Playgroud)

python string int

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

在 Scrapy 中使用相对 XPath 提取文本节点或元素

因此,我对使用 XPath 还比较陌生,而且我在磨练我需要用于我的特定应用程序的确切语法方面遇到了一些困难。我构建的刮板工作得非常好(当我使用不太复杂的路径时,它可以工作)。一旦我尝试更具体地了解我的路径,它就不会返回正确的值。

我试图操纵的文档结构的简化模型是

<table class="rightLinks">
  <tbody>
    <tr>
      <td>
        <a href="http://wwww.example.com">Text That I want to Grab</a>
      </td>
      <td>Some</td>
      <td>Text</td>
    </tr>
    <tr>
      <td>
        <a href="http://wwww.example2.com">Text That I want to Grab</a>
      </td>
      <td>Some</td>
      <td>Text</td>
    </tr>
    <tr>
      <td>
        <a href="http://wwww.example3.com">Text That I want to Grab</a>
      </td>
      <td>Some</td>
      <td>Text</td>
    </tr>
    <tr>
      <td>
        <a href="http://wwww.example4.com">Text That I want to Grab</a>
      </td>
      <td>Some</td>
      <td>Text</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

基本上,我想获取 href 值和带有链接的文本。

这是我的刮板关于这个以及我迄今为止尝试过的部分:

  import scrapy
  from scrapy.selector import HtmlXPathSelector
  from scrapy.http import HtmlResponse

  def parse(self, response):
    for sel …
Run Code Online (Sandbox Code Playgroud)

python xpath scrapy scraper

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

捕获从Python调用的程序的*all*terminal输出

我有一个可以执行的程序

./install.sh
Run Code Online (Sandbox Code Playgroud)

这安装了一堆东西,并在屏幕上发生了很多活动..

现在,我正试图通过它来执行它

p = subprocess.Popen(executable, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
Run Code Online (Sandbox Code Playgroud)

希望屏幕上发生的所有活动都在out(或err)中捕获.但是,内容在进程运行时直接打印到终端,而不是捕获到out或err在进程运行后都是空的.

这可能发生什么?如何捕获这些内容?

python

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

从bash脚本导入函数定义,无需运行它

我有两个脚本foo.sh和bla.sh

foo.sh

#bin/bash 
test(){
    "hello world"
}   
test
exit 1
Run Code Online (Sandbox Code Playgroud)

bla.sh

#bin/bash 
source ./a.sh
echo a.test
Run Code Online (Sandbox Code Playgroud)

问题是源似乎运行a.sh脚本,当然然后退出1 b后永远不会执行.

有没有办法只使用bla的函数测试而不运行整个脚本?

bash shell

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

为什么(关联所有......)不会改变一切?

(def everything (vec (repeat 5 (vec (repeat 5 [0 0 0])))))

(assoc-in everything [3 3] [255 255 255])

(get-in everything [3 3])
Run Code Online (Sandbox Code Playgroud)

这将返回[0 0 0],而不是[255 255 255].为什么?

clojure

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

“ lambda不能有赋值语句”-那么“ foo = lambda x:x * 2”为什么合法?

我正在阅读Steven Lott撰写的《 Functional Python Programming》,这是一本关于“功能性”地使用Python而不是以面向对象的方式使用的书,其中大部分示例着重于探索性数据分析。

洛特说Lamda不能有赋值语句。但是在同一页面上,他为变量分配了一个lambda函数:

>>mersenne = lambda x: 2**x-1
>>mersenne(17)
 131071
Run Code Online (Sandbox Code Playgroud)

那怎么不是任务陈述呢?我还缺少其他“分配”的感觉吗?

python lambda variable-assignment

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

从bash数组中查找最大值和最小值

我有一个 txt 文件,里面写有整数值,带有“;” 分隔器。117;92;16;20;

我需要比较这些并选择最高的一个。我的代码:

IFS=';' #Internat Field Separator
read -ra vector<$file
max=$vector[0]
min=$vector[0]

for i in ${vector[@]}
do

if [[ $i > $max ]] ; then
max=$i
fi

if [[ $i < $min ]] ; then
min=$i

fi
done
echo "Max value is $max, minimal value is $min"
break
Run Code Online (Sandbox Code Playgroud)

输出是:

最大值为 92,最小值为 16。

所以这当然是错误的。当我尝试回应它时:

echo $value ( in a loop of course ) 
Run Code Online (Sandbox Code Playgroud)

输出是

177[0] 92 16 25

为什么第一个字母显示为 int[0]?因此,我无法比较它们。我什么都想不通......

bash shell

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

在bash中的别名内转义单引号

我正在尝试在我的.bashrc文件中设置一个别名,如下所示:

clear && printf '\033[3J'
Run Code Online (Sandbox Code Playgroud)

但是以下方法不起作用

alias clall= "clear && printf \'\033[3J\'"
alias clall= "clear \&\& printf \'\\033\[3J\'"
Run Code Online (Sandbox Code Playgroud)

bash alias escaping

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

为什么在bash 3.2中带有空的右侧的正则表达式匹配为false,而在4.2中为true?

给定两个字符串:

a="hello h" 
b="" 
Run Code Online (Sandbox Code Playgroud)

在bash 4.2版中,其regex比较结果为true

[[ "${a}" =~ "${b}" ]]
echo $?                           # 0
Run Code Online (Sandbox Code Playgroud)

在bash 3.2版中,正则表达式的比较结果为false

[[ "${a}" =~ "${b}" ]]
echo $?                           # 2
Run Code Online (Sandbox Code Playgroud)

编辑:第一个结果在带有4.2.46(2)-发行版bash的linux操作系统上运行,而第二个结果在运行3.2.57(1)-发行版bash的OS Mojave上运行。

bash

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

命令替换在通过 SSH 传递的脚本文本中不起作用

我尝试使用以下内容bash来访问文件夹的内容;

test_dir="/some_dir/dir_test"

ssh -t -t user@remote-host "
if [ -d '$test_dir' ]; then
    sudo chown -R user:admin '$test_dir'
    echo '$test_dir'/*
    if [ '$(ls -A $test_dir)' ]; then
        sudo rm -rf '$test_dir'/*
        echo '$test_dir'/*
fi"
Run Code Online (Sandbox Code Playgroud)

该脚本尝试检查是否/some_dir/dir_test为空,如果不是,则删除该文件夹中的所有文件;但我收到以下错误;

ls: cannot access '/some_dir/dir_test': No such file or directory

/some_dir/dir_test
drwxr-xr-x.  3 sys admin   16 Sep 23 15:03 dir_test
Run Code Online (Sandbox Code Playgroud)

不过,我ssh可以remote-host和ls -A /some_dir/dir_test。

我想知道如何解决它。

linux ssh bash ls

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

标签 统计

bash ×5

python ×4

shell ×2

alias ×1

clojure ×1

escaping ×1

int ×1

lambda ×1

linux ×1

ls ×1

scraper ×1

scrapy ×1

ssh ×1

string ×1

variable-assignment ×1

xpath ×1