【发布时间】:2017-02-20 23:48:46
【问题描述】:
我使用的是 Windows 7.0 并安装了 Python 3.4。我对 Python 很陌生。这是我的清单。这是一个价格文件。我有数千个这样的,但目前一直在尝试让它在一个上工作。
我试图只提取以 hfus、ious 或 oaus 开头的行。
caus 123456 99.872300000 2
gous 1234567 99.364200000 2
oaus 891011 97.224300000 2
ious 121314 96.172800000 2
hfus 151617 99081.00 2
hfus 181920 1.000000000 2
这是想要的结果。
oaus 891011 97.224300000 2
ious 121314 96.172800000 2
hfus 151617 99081.00 2
hfus 181920 1.000000000 2
这是我到目前为止写的,但它不起作用。我还想它是否会遍历每个文件并用截断的列表覆盖现有文件,并用它的原始名称保存它。文件 033117.txt 代表一个日期。每个文件都保存为 mmddyy.txt。让它在所有文件上工作是理想的,但现在如果我能让它在一个文件上工作,那就太好了。
inFile = open("033117.txt")
outFile = open("result.txt", "w")
buffer = []
keepCurrentSet = True
for line in inFile:
buffer.append(line)
if line.startswith("hfus"):
if line.startswith("oaus"):
if line.startswith("ious"):
if keepCurrentSet:
outFile.write("".join(buffer))
keepCurrentSet = True
buffer = []
elif line.startswith(""):
keepCurrentSet = False
inFile.close()
outFile.close()
【问题讨论】:
-
在循环中,尝试
beginning_line = line.split()[0],然后您可以使用if 'oaus' in beginning_line...进行检查。另外我建议使用with打开文件 -
if line.split()[0] in ('hfus', 'ious', 'oaus'): #do stuff
标签: python python-3.x parsing slice