遍历数组的 readlines 和写入新文件的 writelines
readlines from iterating through an array and writelines to a new file
bad_list是从不同的函数返回的数组,returns有问题需要仔细查看的行的行号
例如array([ 1, 3, 4, 27, 50, 99], dtype=int64)
想法是阅读 test.txt,并创建一个新的 test_badlines.txt,它只包含 bad_list
中指定的有问题的行
这是我目前所拥有的,打印行有效,但写入行只吐出 1 行,而它应该是 6 行
for rows in bad_list:
filename = 'C:\Users\Username\Downloads\test.txt'
bad_filename = str(filename)[:-4] + '_badlines.txt'
with open(filename) as f, open(bad_filename, 'w') as wt:
lines = f.readlines()
#print lines[rows]
wt.writelines(lines[rows])
lines
是普通的 list
,而普通的 list
不能通过索引序列进行索引以供查找。这里最简单的解决方案是制作一个生成器表达式,提取您关心的行,替换:
wt.writelines(lines[rows])
与:
wt.writelines(lines[row] for row in bad_list)
假设 bad_list
是您描述的数组,您完全删除了外部 for
循环;您不想每行一次又一次地打开输入和输出文件,总共只打开一次。
bad_list是从不同的函数返回的数组,returns有问题需要仔细查看的行的行号
例如array([ 1, 3, 4, 27, 50, 99], dtype=int64)
想法是阅读 test.txt,并创建一个新的 test_badlines.txt,它只包含 bad_list
中指定的有问题的行这是我目前所拥有的,打印行有效,但写入行只吐出 1 行,而它应该是 6 行
for rows in bad_list:
filename = 'C:\Users\Username\Downloads\test.txt'
bad_filename = str(filename)[:-4] + '_badlines.txt'
with open(filename) as f, open(bad_filename, 'w') as wt:
lines = f.readlines()
#print lines[rows]
wt.writelines(lines[rows])
lines
是普通的 list
,而普通的 list
不能通过索引序列进行索引以供查找。这里最简单的解决方案是制作一个生成器表达式,提取您关心的行,替换:
wt.writelines(lines[rows])
与:
wt.writelines(lines[row] for row in bad_list)
假设 bad_list
是您描述的数组,您完全删除了外部 for
循环;您不想每行一次又一次地打开输入和输出文件,总共只打开一次。