我的文本文件如下:
f = open('file.txt','r')
with open('file.txt') as fin:
lines = f.readline()
print lines
with open ('file_1.txt', 'w') as fout:
fout.write(lines)
with open ('file.txt') as fin:
lines = f.readlines()[0:]
print lines
with open ('file_2.txt', 'w') as fout:
for el in lines:
fout.write('{0}\n'.format(' '.join(el)))
f.close()
我有以下代码:
file1
这会输出file2
第一行中的数字。然后输出cameron_county = pd.read_table(path + '/2016_GCC_prelim_appraisal_info_20160630.txt',
encoding = 'utf-8',error_bad_lines = False)
和剩余数字列表。我如何让它迭代线,以便下一个文件从第2行开始,依此类推?基本上,遍历所有40行并在每次输出文件时删除一行。
简单地说,我希望它输出:
file1 =仅限行1
file2 =第2行至第40行
然后..
file3 =仅限第2行
file4 = lines1和3至40
..等等
我是python的新手,所以任何帮助都将不胜感激!
答案 0 :(得分:0)
您可以使用len()找出文件的长度,然后使用两个for循环来迭代并每次都创建一个新的文本文件。
this.tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F));
this.tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
这应生成具有唯一文件名的新文件。每个文件将包含比前一个文件少一行的行。
答案 1 :(得分:0)
以下是使用with
上下文管理和readlines
/ writelines
来简化I / O的解决方案。
with open('file.txt', 'r') as input:
linebuf = input.readlines()
# The context manager will automatically close `input`
# no matter what happens (including errors)
for ind, line in enumerate(linebuf):
with open('file.line_{}_only.txt'.format(ind + 1), 'w') as output:
output.writelines([line])
# Files named like "file.line_1_only.txt" will be closed here
with open('file.lines_except_{}.txt'.format(ind + 1), 'w') as output:
output.writelines(linebuf[:ind] + linebuf[ind + 1:])
# Files named like "file.lines_except_1.txt" will be closed here