相关疑难解决方法(0)

GitPython:如何在GitPython中提交中访问文件的内容

我是GitPython的新手,我试图在提交中获取文件的内容.我能够从特定的提交中获取每个文件,但每次运行命令时都会收到错误.现在,我知道该文件存在于GitPython中,但每次运行我的程序时,都会收到以下错误:

 returned non-zero exit status 1
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 2.7.6Ubuntu Linux 14.04.

我知道文件存在,因为我也从命令行直接进入git,检查相应的提交,搜索文件,然后找到它.我还在其上运行cat命令并显示文件内容.很多时候,当错误出现时,它表示相关文件不存在.我试图通过GitPython进行每次提交,从每个单独的提交中获取每个blob或文件,并在该文件的内容上运行外部Java程序.Java程序旨在将字符串返回给Python.要捕获从我的Java代码返回的字符串,我也使用subprocess.check_output.任何帮助将不胜感激.

我尝试将命令作为列表传递:

cmd = ['java', '-classpath', '/home/rahkeemg/workspace/CSCI499_Java/bin/:/usr/local/lib/*:', 'java_gram.mainJava','absolute/path/to/file']
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=False)
Run Code Online (Sandbox Code Playgroud)

我也尝试将命令作为字符串传递:

subprocess.check_output('java -classpath /home/rahkeemg/workspace/CSCI499_Java/bin/:/usr/local/lib/*: java_gram.mainJava {file}'.format(file=entry.abspath.strip()), shell=True)
Run Code Online (Sandbox Code Playgroud)

是否可以从GitPython访问文件的内容?例如,假设有一个提交,它有一个文件foo.java 在该文件中是以下代码行:

foo.java

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

    public class foo{
        public static void main(String[] args) throws Exception{}
    }
Run Code Online (Sandbox Code Playgroud)

我想访问文件中的所有内容并在其上运行外部程序.任何帮助将不胜感激.下面是我正在使用的一段代码

 #! usr/bin/env python

 __author__ = 'rahkeemg'

 from git import *
 import git, json, subprocess, re


 git_dir = '/home/rahkeemg/Documents/GitRepositories/WhereHows'


 # make an …
Run Code Online (Sandbox Code Playgroud)

java linux python-2.7 gitpython

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

标签 统计

gitpython ×1

java ×1

linux ×1

python-2.7 ×1