gpt4 book ai didi

python - 查找所有使用 `print` 但不包含 `from __future__ import print_function` 的文件

转载 作者:行者123 更新时间:2023-12-01 07:18:29 25 4
gpt4 key购买 nike

我正在将代码库从 2.7 迁移到 3.6,并希望确保所有使用 print 的文件做__future__导入。

我该怎么办find/grep/ack递归地通过多包代码库查找使用 print 的所有文件但没有from __future__ import print_function

我知道2to3应该自动处理这个问题,但我见过一个实例,其中存在 print("updated database: ", db_name) 形式的打印表达式在包含打印函数导入的文件中。运行2to3-2.7在此文件上将该行转换为 print(("updated database: ", db_name)) ,这会改变输出。我想找到可能出现此问题的所有实例,以便在运行自动化工具之前修复它们

最佳答案

如果您不介意在 Python 本身中执行此操作:

import os

for folder, subfolder, files in os.walk('/my/project/dir'):
scripts = [f for f in files if f.endswith('.py')]
for script in scripts:
path = os.path.join(folder, script)
with open(path, 'r') as file:
text = file.read()
if "print" in text and "print_function" not in text:
print("future print import not found in file", path)

关于python - 查找所有使用 `print` 但不包含 `from __future__ import print_function` 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com