小编jwo*_*der的帖子

清理克隆上的git子模块的工作流程是什么?

有关如何"本地"删除子模块的有用答案 - 如何删除子模块?

但是我有问题我在几台机器上克隆了我的仓库.两个我每个月只工作一到两次.因此,当我更新那些分支时虽然不再跟踪子模块,但文件仍然在工作分支上.git/modules.在不止一次的情况下,我偶然检查了一些.在其他情况下,由于存在这些不需要的文件/目录,我的构建失败.

我想我可以保留一个要删除的东西列表 - 但这似乎不对 - 另一个人会怎么做删除,我没有git之外的信息删除什么?

那么清理克隆的建议方法是什么?

更新

对我来说似乎是最新的git --version回报git version 2.18.0(2018-09-01).

我添加了一个可重现的例子.

建立

mkdir parent
cd parent 
git init
git submodule add https://github.com/jakesgordon/javascript-tetris.git
git commit -am add

cd ..
git clone parent clone
cd clone
git submodule update --init
Run Code Online (Sandbox Code Playgroud)

现在两个目录都包含带有签出文件的子模块javascript-tetris/. .gitmodules包含子模块.

当我做

cd parent
git rm javascript-tetris
git commit -am delete
Run Code Online (Sandbox Code Playgroud)

在父目录中,目录已经javascript-tetris消失,并且.gitmodules删除了该条目.但仍有一个人口稠密的.git/modules/javascript-tetris目录.

在克隆方面:

git pull
Run Code Online (Sandbox Code Playgroud)

发出警告:warning: unable to rmdir 'javascript-tetris': …

git git-submodules

16
推荐指数
2
解决办法
233
查看次数

迭代嵌套的json对象数组

我必须遍历json数组对象.

它具有以下结构.

var myJSONObject = {
    "abc": {
        "prod_1": [
            {"prod_ver" : "prod 1 ver 1"},
            {"prod_ver" : "prod 1 ver 2"},
        ],
        "prod_2": [
            {"prod_ver" : "prod 2 ver 1"},
            {"prod_ver" : "prod 2 ver 2"},
        ],
        "prod_3": [
            {"prod_ver" : "prod 3 ver 1"},
            {"prod_ver" : "prod 3 ver 2"},
        ]
    }
};
Run Code Online (Sandbox Code Playgroud)

基本上我正在做的是prod_1是产品的名称,prod_1的版本列表填充在其中.

所以现在我想要的是产品的名称以及它具有的版本.

问题是该产品下可能有许多产品和许多版本.所以我需要一个适当的循环结构在javascript中可以通用来处理它.

最好是循环将产品名称存储在一个var中,而将其版本存储在另一个var中,因为我需要对产品名称进行一些检查.

如果json结构错误或者可以写出更好的json结构,请建议正确/更好的结构.

帮帮忙

提前致谢.

javascript json

13
推荐指数
2
解决办法
6万
查看次数

如何在Python中调用Perl函数

我有一些用Perl模块编写的函数.我必须在Python中调用这些函数并获取输出.

我已经看到链接 http://en.wikibooks.org/wiki/Python_Programming/Extending_with_Perl.我无法找到他们在Python中导入的Perl模块.

当我尝试在Linux中安装pyperl时,它无法找到它.

我能够运行简单的Perl脚本并获取输出,但我无法调用用Perl编写的函数并获取输出.

python perl

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

python中getattr(self,'__ a')和self .__ a之间有什么区别?

在我运行此代码之前,我认为它们是相同的:

class B(object):
    def show(self):
        self.__a = "test"
        print "B"

    def this_b(self):
        print "this_b"
        print self.__a
        print getattr(self, '__a') #exception


class C(B):
    def show(self):
        print "C"
        # B.show(self)
        super(C, self).show()


    def call(self):
        print "call"
        self.show()
        self.this_b()
        # print self.__a

C().call()
Run Code Online (Sandbox Code Playgroud)

AttributeError: 'C' object has no attribute '__a'随着getattr声明而提出,但为什么呢?

python python-2.7

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

如何使用linux命令将文本文件转换为二进制文件

我有文本(字符串)格式的二进制的十六进制代码.如何使用像cat和echo这样的linux命令将其转换为二进制文件?

我知道命令跟随命令创建二进制test.bin.但是如果这个十六进制代码在另一个.txt文件中呢?如何"捕捉"文本文件的内容以"回显"并生成二进制文件?

# echo -e "\x00\x001" > test.bin

unix linux shell command-line

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

没有模块名称pyspark错误

这是我正在遵循的教程中的确切代码.我的同学没有用相同的代码得到这个错误:

ImportError                                Traceback (most recent call last)

<ipython-input-1-c6e1bed850ab> in <module>()
----> 1 from pyspark import SparkContext
      2 sc = SparkContext('local', 'Exam_3')
      3 
      4 from pyspark.sql import SQLContext
      5 sqlContext = SQLContext(sc)

ImportError: No module named pyspark
Run Code Online (Sandbox Code Playgroud)

这是代码:

from pyspark import SparkContext
sc = SparkContext('local', 'Exam_3')
from pyspark.sql import SQLContext    
sqlContext = SQLContext(sc)
data = sc.textFile("exam3")
parsedData = data.map(lambda line: [float(x) for x in line.split(',')])
retail = sqlContext.createDataFrame(parsedData, 
     ['category_name','product_id', 'product_name', 'product_price'])
retail.registerTempTable("exam3")
print parsedData.take(3)
Run Code Online (Sandbox Code Playgroud)

python pyspark

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

来自文件的Docker环境变量

我正在尝试使用一个Dockerfile进行生产和开发.生产和开发之间的唯一区别是我设置的环境变量.因此,我想从文件中导入环境变量.在使用Docker之前,我会简单地执行以下操作

. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)

但是如果改变./main.py与Docker等效

. ./setvars
docker run .... ./main.py
Run Code Online (Sandbox Code Playgroud)

然后变量将在主机上,并且无法从Docker实例访问.当然,快速而肮脏的黑客就是制作文件

#!/bin/bash
. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)

并在实例中运行它.然而,这将是非常烦人的,因为我有很多我想运行的脚本(使用相同的环境变量),然后必须为每个人创建一个额外的脚本.

是否有任何其他解决方案来获取我的环境变量在docker中而不使用不同的Dockerfile和我上面描述的方法?

docker dockerfile

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

argparse add_argument别名

有没有办法使用argparse创建别名?

例如,我想做这样的事情:

parser.add_argument('--foo' ...)
parser.add_argument_alias('--bar', '--foo')
Run Code Online (Sandbox Code Playgroud)

也就是说,使用--bar应该等同于使用--foo.

python argparse

10
推荐指数
2
解决办法
1680
查看次数

在右下角调用addch时,curses失败了

我开始学习Python中的curses.我在Mac OS X上使用Python 3.5.当我尝试在右下角写入时,程序崩溃并出现以下错误:

$ python ex_curses.py
[...]
  File "ex_curses.py", line 19, in do_curses
    screen.addch(mlines, mcols, 'c')
  _curses.error: add_wch() returned ERR
Run Code Online (Sandbox Code Playgroud)

示例程序是:

import curses

def do_curses(screen):
    curses.noecho()
    curses.curs_set(0)
    screen.keypad(1)

    (line, col) = 12, 0
    screen.addstr(line, col, "Hello world!")
    line += 1
    screen.addstr(line, col, "Hello world!", curses.A_REVERSE)

    screen.addch(0, 0, "c")

    (mlines, mcols) = screen.getmaxyx()
    mlines -= 1
    mcols -= 1
    screen.addch(mlines, mcols, 'c')

    while True:
        event = screen.getch()
        if event == ord("q"):
            break
    curses.endwin()

if __name__ == "__main__":
    curses.wrapper(do_curses)
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我错过了一些明显的东西,但我不知道是什么.

python ncurses python-curses

9
推荐指数
2
解决办法
1445
查看次数

mypy 声明 IO[bytes] 与 BinaryIO 不兼容

考虑以下代码:

from io      import TextIOWrapper
from typing  import List
from zipfile import ZipFile

def read_zip_lines(zippath: str, filename: str) -> List[str]:
    with ZipFile(zippath) as zf:
        with zf.open(filename) as bfp:
            with TextIOWrapper(bfp, 'utf-8') as fp:
                return fp.readlines()
Run Code Online (Sandbox Code Playgroud)

在 Python 3.6.9 下在上述代码上运行 mypy v0.782 失败并出现以下错误:

zfopen.py:8: error: Argument 1 to "TextIOWrapper" has incompatible type "IO[bytes]"; expected "BinaryIO"
Run Code Online (Sandbox Code Playgroud)

但是,我觉得这段代码不应该被视为错误,因为ZipFile.open()返回了一个TextIOWrapper接受的二进制文件句柄。此外,IO[bytes]BinaryIO(据我所知)实际上是一回事;它只是BinaryIO被声明为IO[bytes]. 我天真地希望IO[bytes]在任何地方都能被接受BinaryIO,除了这不是子类的工作方式,而且我不确定在打字时如何正确利用这个子类。

谁在这里出错了,如何修复错误?

  • 声明返回类型ZipFile.open()asIO[bytes]而不是typeshed 是否错误BinaryIO …

python type-hinting mypy

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