'文件名、目录名或卷标语法不正确。\r\n',非

2024-10-01 07:16:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python脚本将文件暂存到本地托管的Git:

gitExe = r"C:\Git\bin\git.exe"
gitdir = r' --git-dir="G:\QA\.git"'
worktree = r' --work-tree="G:\QA\"'
gitcmd = " add"
myCsv = "Reports.csv"

import subprocess

print gitdir
print gitcmd
print gitExe

cmd = 'C:\\Git\\bin\\git.exe --git-dir="G:\\QA\\.git" --work-tree="G:\\QA" add Reports.csv' ####WORKS####
#cmd = ['C:\\Git\\bin\\git.exe --git-dir="G:\\QA\\.git" --work-tree="G:\\QA" add Reports.csv'] ####DOESNT WORK####
#cmd = ['C:\\Git\\bin\\git.exe --git-dir="G:\\QA\\.git" --work-tree="G:\\QA" add Reports.csv'+""] ####DOESNT WORK####
#cmd = [gitExe + gitdir + worktree + gitcmd + myCsv] ####DOESNT WORK####
p = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
print cmd
print p.communicate()

当我将完整命令作为字符串传递时(上面未修改的行),一切正常,但当我将其作为数组传递(上面三行注释掉的行),我得到以下错误消息:

^{pr2}$

什么给予?在


Tags: csvgitcmdaddtreebindirqa
1条回答
网友
1楼 · 发布于 2024-10-01 07:16:57

将命令作为数组传递时,每个参数必须是单独的元素。在

cmd = ['C:\\Git\\bin\\git.exe', ' git-dir="G:\\QA\\.git"', ' work-tree="G:\\QA"',
    'add', 'Reports.csv']

数组中的第一项是程序名。在您的例子中,python试图将整个命令行转换成程序名。在

相关问题 更多 >