我有一个目录包含50个文件,我想读他们一个接一个和其他文件比较-这是固定的。我正在使用glob.blob
。但没用。你知道吗
这里是我如何读取所有文件。相反,path = '*.rbd'
如果我给出像path = run-01.rbd
这样的文件名,它就工作了。你知道吗
path = '*.rbd'
path = folder + path
files=sorted(glob.glob(path))
完整代码
import glob
from itertools import islice
import linecache
num_lines_nonbram = 1891427
bits_perline = 32
total_bit_flips = 0
num_bit_diff_flip_zero = 0
num_bit_diff_flip_ones = 0
folder = "files/"
path = '*.rbd'
path = folder + path
files=sorted(glob.glob(path))
original=open('files/mull-original-readback.rbd','r')
#source1 = open(file1, "r")
for filename in files:
del_lines = 101
with open(filename,'r') as f:
i=1
while i <= del_lines:
line1 = f.readline()
lineoriginal=original.readline()
i+=1
i=0
num_bit_diff_flip_zero = 0
num_bit_diff_flip_ones = 0
num_lines_diff =0
i=0
j=0
k=0
a_write2 = ""
while i < (num_lines_nonbram-del_lines):
line1 = f.readline()
lineoriginal = original.readline()
while k < bits_perline:
if ((lineoriginal[k] == line1[k])):
a_write2 += " "
else:
if (lineoriginal[k]=="0"):
#if ((line1[k]=="0" and line1[k]=="1")):
num_bit_diff_flip_zero += 1
if (lineoriginal[k]=="1"):
#if ((line1[k]=="0" and line1[k]=="1")):
num_bit_diff_flip_ones += 1
#if ((line1[k]==1 and line1[k]==0)):
#a_write_file2 = str(i+1) + " " + str(31-k) + "\n" + a_write_file2
#a_write2 += "^"
#num_bit_diff_flip_one += 1
# else:
# a_write2 += " "
k+=1
total_bit_flips=num_bit_diff_flip_zero+num_bit_diff_flip_ones
i+=1
k=0
i = 0
print files
print "Number of bits flip zero= %d" %num_bit_diff_flip_zero +"\n" +"Number of bits flip one= %d" %num_bit_diff_flip_ones +"\n" "Total bit flips = %d " %total_bit_flips
f.close()
original.close()
问题是,无论何时开始与
for filename in files:
循环中的下一个文件进行比较,都不会返回到originalfile
的开头。最简单的解决方案是:在循环的开始。你知道吗
您还可以在循环之前将整个文件读入一个列表中一次,并使用它来代替重复读取文件。你知道吗
如果您只想处理部分文件,可以将文件读入一个列表,然后使用一个列表切片来获取所需的行。你知道吗
您也不应该每次通过循环都将
num_bit_diff_flip_zero
和num_bit_diff_flip_one
设置为0
,因为它们应该是所有文件的总数。你知道吗您可以使用os模块首先列出目录中的所有内容(包括文件和模块),然后使用python生成器只过滤出文件。然后可以使用第二个python生成器过滤出具有特定扩展名的文件。可能有一种更有效的方法,但这是可行的:
供进一步参考: How do I list all files of a directory?
相关问题 更多 >
编程相关推荐