【问题标题】:Find a string in python files using Python使用 Python 在 python 文件中查找字符串
【发布时间】:2017-03-27 10:25:59
【问题描述】:

我对 python 很陌生。我正在尝试查找其中包含字符串“DATASOURCE”的所有 python 文件并打印文件的路径名。我正在使用此代码:

import os,glob

os.chdir(r"G:\PROJECTS\menofim_3_5\gis")
for file in glob.glob('*.py'):
    with open(file) as f:
        contents = f.read()
    if 'DATASOURCE' in contents:
        print file

我只得到这个结果:

>>> 
findAndReplaceWorkspacePaths-dwg.py
Remove FGB by dataSource excluding specific mxd.py
SelectLayerByLocation2.py
SelectLayerByLocation3.py
>>>

我已成功打印文件名,但我不知道如何打印文件的路径名。

【问题讨论】:

  • 这是错的吗?解释你的期望。顺便说一句,完成后您不会关闭代码中的文件。
  • @АндрейЧереваткин:使用with时不需要显式关闭文件
  • 啊,对。对不起。

标签: string python-2.7 path glob os.path


【解决方案1】:

使用os.path.join 将目录名连接到文件名:

import os, glob

dirname = r"G:\PROJECTS\menofim_3_5\gis"
os.chdir(dirname)
for filename in glob.glob('*.py'):
    with open(filename) as f:
        contents = f.read()
    if 'DATASOURCE' in contents:
        print os.path.join(dirname, filename)
        print file

【讨论】:

  • Raymond Hettinger,把最后一行改成“打印文件名”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
相关资源
最近更新 更多