如果要在输出文件中的行上保留缩进和尾随空格,请测试剥离的行,但写入原始行。
这也使用上下文管理器,并在 Python 2.7 中工作:
with open('EXISTINGFILE', 'r') as fin, open('NEWFILE', 'w') as fout:
for line in fin:
if line.strip():
fout.write(line)
如果您想做其他处理,我建议在它自己的函数体中定义它,并调用该函数:
def process_line(line):
# for example
return ''.join(('Payload:\t', line.strip().upper(), '\tEnd Payload\n'))
with open('EXISTINGFILE', 'r') as fin, open('NEWFILE', 'w') as fout:
for line in fin:
if line.strip():
fout.write(process_line(line))
重读您的问题,我看到您只询问了删除文件开头的空格。如果您想在满足某个条件后获取源文件的每一行,您可以为该条件设置一个标志,并根据该标志切换您的输出。
例如,如果您想删除初始的空白行,处理非空白行,并且在至少有一行数据之后不删除或处理所有空白行,您可以这样做:
def process_line(line):
# for example
return ''.join(('Payload:\t', line.strip().upper(), '\tEnd Payload\n'))
with open('EXISTINGFILE', 'r') as fin, open('NEWFILE', 'w') as fout:
have_paydata = False
for line in fin:
if line.strip():
have_paydata = True if not have_paydata
fout.write(process_line(line))
elif have_paydata:
fout.write(line)