Python 从多个文件中删除六个.b
我在项目中有几十个文件,我想将所有出现的Python 从多个文件中删除六个.b,python,bash,Python,Bash,我在项目中有几十个文件,我想将所有出现的six.b(“…”更改为b”…。我可以用某种正则表达式bash脚本来实现这一点吗?完全可以用Python实现,但我会先备份我的项目树,然后: import re import os indir = 'files' for root, dirs, files in os.walk(indir): for f in files: fname = os.path.join(root, f) with open(fna
six.b(“…”
更改为b”…
。我可以用某种正则表达式bash脚本来实现这一点吗?完全可以用Python实现,但我会先备份我的项目树,然后:
import re
import os
indir = 'files'
for root, dirs, files in os.walk(indir):
for f in files:
fname = os.path.join(root, f)
with open(fname) as f:
txt = f.read()
txt = re.sub(r'six\.(b\("[^"]*"\))', r'\1', txt)
with open(fname, 'w') as f:
f.write(txt)
print(fname)
这完全可以在Python中实现,但我会首先备份我的项目树,然后:
import re
import os
indir = 'files'
for root, dirs, files in os.walk(indir):
for f in files:
fname = os.path.join(root, f)
with open(fname) as f:
txt = f.read()
txt = re.sub(r'six\.(b\("[^"]*"\))', r'\1', txt)
with open(fname, 'w') as f:
f.write(txt)
print(fname)
一个相对简单的bash解决方案(将*.foo更改为*.py或任何适合您情况的文件名模式): 注:
\”
,例如six.b(“asdf\”)
,但我不知道有没有一个简单的解决方案来解决这个问题,而不知道您正在处理的文件的更多信息。six.b(“”
的结尾是否保证是行中最后一个”
一个相对简单的bash解决方案(将*.foo更改为*.py或任何适合您情况的文件名模式): 注:
\”
,例如six.b(“asdf\”)
,但我不知道有一个简单的解决方案可以解决这个问题,而不知道更多关于您正在操作的文件的信息。six.b(“”
的结尾是否保证是行中最后一个”
?等等是否出现了不应更改的
six.b
?e、 g.six.begin
或诸如此类。您将其标记为Python,您是否也对Python解决方案持开放态度?是否出现了不应更改的six.b
?e、 g.six.begin
或诸如此类。您将其标记为Python,您也对Python解决方案持开放态度吗?这不就是要保留括号,将six.b(“asdf”)
变成b(“asdf”)
?我认为它还为带有转义引号的字符串提供了错误的输出,比如six.b(“asdf”)
。它也不处理“
引号或三重引号,但至少它不会触及这些引号,而不会产生扭曲的输出。这难道不会保留括号,将six.b(“asdf”)
变成b(“asdf”)吗
?我认为它还为带有转义引号的字符串提供了错误的输出,如six.b(“asdf\”)
。它也不处理”
引号或三重引号,但至少它不处理这些引号,而是生成损坏的输出。