代码是从一个目录读取xls文件,将其转换为csv文件并复制到另一个目录。
filePath = os.path.join('.', 'attachments')
filePaths = [f for f in os.listdir(filePath) if os.path.isfile(os.path.join(filePath, f)) and f.endswith('.xls')]
for f in filePaths:
wb = xlrd.open_workbook(os.path.join(filePath, f))
sheet = wb.sheet_by_index(0)
filename = f + '.csv'
fp = open(os.path.join(filePath, filename), 'wb')
wr = csv.writer(fp, quoting=csv.QUOTE_ALL)
for rownum in xrange(sheet.nrows):
wr.writerow(sheet.row_values(rownum))
fp.close
shutil.copy(os.path.join('.', 'attachments', filename), new_directory)
结果是:xls文件成功转换为csv文件,但是在new_directory中,复制的文件只包含了csv文件的一部分。
例如,原始的csv文件有30行,但在复制的文件中,只有17行。知道为什么会发生这种情况吗?