python - 在python中编辑文件

标签 python svn

我写了一个小的 python 程序作为个人实用程序来帮助我进行一些重构。它类似于 unix 替换,除了它支持正则表达式并对目录和(可选)所有子目录中的所有文件进行操作。

问题是我没有原地更换。我正在打开文件,将内容传递到内存中,然后覆盖文件,如下所示:

file = open('path/to/file','r')
in_string = file.read()
file.close()
# ...
#Processing logic
# ...
file = open('path/to/file','w')
file.write(out_string)
file.close()

除了明显的性能/内存问题(这是合理的,但对我的使用来说不是什么大问题)之外,此方法还有另一个缺点。 SVN吓坏了。我可以在事后做一些复制和粘贴变通方法来修复 svn 在提交时抛出的校验和错误,但这会使该实用程序毫无意义。

有更好的方法吗?我猜想如果我就地编辑文件,就不会有任何问题。我该怎么做?

最佳答案

我怀疑问题是您实际上在编辑错误的文件。当您只是修改跟踪的文件时,Subversion 永远不应该引发任何关于校验和的错误——与您修改它们的方式无关。

也许您不小心编辑了.svn 目录中的文件?在 .svn/text-base 中,Subversion 使用相同的名称加上扩展名 .svn-base 存储您的文件的副本,确保您没有编辑这些文件!

关于python - 在python中编辑文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626617/

相关文章:

python - 将 PIL 图像通过管道传输到 ffmpeg 标准输入 - Python

python - Pandas 从长到宽

svn - 拆分 SVN 存储库

SVN分支问题

linux - SVN - 删除现有存储库

asp.net - 使用 SQL 将 ASP.net MVC 应用程序部署到暂存和生产

python - 使用 Python 解析文本文件

python - 使用 Python 从 dynamodb 中检索 500 个项目的简单示例

git - 通过 url 在 vi​​sual svn 中突出显示/导航行号

python - 无法在AWS lambda中使用gitpython