python - 我的预提交文件有问题
问题描述
这是我的预提交文件(放在 .git/hooks 中)
from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals
import argparse
import io
import sys
def replace_strings(filename):
f = open(filename, 'r')
configtext = f.read()
passwordpos = configtext.find("password");
newlinepos = configtext.find("\n", passwordpos)
passwordold = configtext[passwordpos+10:newlinepos-2]
passwordnew = "test0000"
f.close()
f = open('config.php', 'w')
#print(passwordpos)
#print(passwordold)
#print(configtext)
configtext = configtext.replace(passwordold, passwordnew)
#print(configtext)
f.write(configtext)
return 1
def main(argv=None):
parser = argparse.ArgumentParser()
parser.add_argument('filenames', nargs='*', help='Filenames to fix')
args = parser.parse_args(argv)
retv = 0
for filename in args.filenames:
if (filename=='config.php'):
return_value = replace_strings(filename)
if return_value != 0:
print('Fixing strings in {}'.format(filename))
retv |= return_value
return retv
不知何故,它不起作用。我已经在单独的 .py 文件中检查了 def replace_strings 的内容,它工作得很好(而不是我使用“config.php”字符串的参数文件名)。有什么帮助吗?
解决方案
#!/usr/bin/env python
应该是第一行以防 Python 挂钩。
推荐阅读
- python - 对大熊猫具有决定性意义的树木
- flutter - 我想在我的颤振应用程序上正确加载其他屏幕
- amazon-web-services - 插值数据源
- javascript - 如何根据属性键过滤对象属性?
- c# - 在自定义 JSON 转换器中忽略具有属性的属性
- laravel - Laravel:跨数据透视表查询特定行
- rest - Blazor Webassembly 项目调用 REST API
- angular - Angular:为什么在“if 语句”中可以使用 const 作为布尔值?
- visual-studio-2019 - Visual Studio 2019 Release 文件夹中的哪些文件应该上传到 GitHub?
- c - 在没有 btsl 指令的情况下使用 inline asm 设置位