我在目录中有许多行号不同且列号相同(10列)的文件。我想遍历所有文件并执行以下操作。
如果文件中的行数小于20
添加具有相同列号(10)的值(1 1 1 0 1 1 0 0 1 1 0)的新行,直到文件有20行
下面的代码,但我不知道如何完成才能获得实际结果
os.chdir('./directory/')
names={}
for fn in glob.glob('*.dat'):
with open(fn) as f:
names[fn]=sum(1 for line in f)
line=f.readlines()
x=[1 1 1 0 1 1 0 1 1 0]
if names[fn] < 20:
.....
if names[fn]>20 and names[fn]<40
.....
答案 0 :(得分:0)
对您的代码的一种解决方法进行排序,在此我假设x = [1 1 1 0 1 1 0 1 1 0]
是一个字符串数据类型变量。如果没有,您总是可以将其转换为一个并完成。此外,它还会对文件及其已存在的行数进行完整性检查,将其缩短一点,然后执行所需的过程。希望对您有帮助
os.chdir('./directory/')
names={}
x=[1 1 1 0 1 1 0 1 1 0]
for fn in glob.glob('*.dat'):
with open(fn) as f:
line=f.readlines()
i = len(line)
if i < 20:
with open(fn, 'a') as input_file:
while i < 20:
input_file.write(x)
input_file.write("\n")
i+=1
if i > 20 and i < 40
with open(fn, 'a') as input_file:
while i < 40:
input_file.write(x)
input_file.write("\n")
i+=1