【发布时间】:2022-10-23 02:24:44
【问题描述】:
我有多个包含不同文本的文本文件。 它们都包含我感兴趣的相同 2 行的单一外观:
================================================================
Result: XX/100
我正在尝试编写一个脚本来收集所有这些 XX 值(0 到 100 之间的数值),并将它们粘贴到一个 CSV 文件中,其中 A 列中的文本文件名和 B 列中的数值。
为此,我考虑过使用 Python 或 PowerShell。
如何识别“===..”字符串下出现“Result”的行,收集其内容直到'\n',然后将其从“Result:”和“/100”中剥离?
“结果”和其他数值可能出现在文件中,但绝不会以引用的格式出现,并且在“=====”下方,就像我感兴趣的行一样。
谢谢!
编辑:我写了这个可怜的天真尝试来收集数值。
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
for filename in os.listdir(dir_path):
if filename.endswith(".txt"):
with open(filename,"r") as f:
lineFound=False
for index, line in enumerate(f):
if lineFound:
line=line.replace("Result: ", "")
line=line.replace("/100","")
line.strip()
grade=line
lineFound=False
print(grade, end='')
continue
if index>3:
if "================================================================" in line:
lineFound=True
我仍然很乐意了解是否有使用 PowerShell tbh 的简单方法 对于输出,我使用 csv writer 将结果一一附加到文件中。
【问题讨论】:
-
维护一个 2 级双端队列。使用正则表达式来识别 Result: XX/100 模式。回顾一下(在双端队列中),看看前一行是否以 64 次重复的 '=' 开头。提取 XX 值(有很多方法可以做到这一点)。使用适合管理 CSV 文件的库 - 例如,CSV,熊猫
标签: python powershell csv