Python将xlsx转换为csv

时间:2018-03-18 20:02:14

标签: python excel pandas csv file-conversion

我正在尝试将所有xlsx文件转换为文件夹中的csv文件。它在过去运作良好,但这次我得到一个错误让我不知道。

这是我的代码:

excel_files = glob.glob('/*xlsx*')

for excel_file in excel_files:
    df = pd.read_excel(excel_file)
    output = excel_file.split('.')[0]+'.csv'
    df.to_csv(output)

我还尝试了以下一行,以确保它不是编码问题:

df.to_csv(output, encoding='utf-8', index=False)

它转换了大约1000个文件,但其余的7000个文件仍然出现错误:

KeyError: 'rId6'

你会如何解决?谢谢。

1 个答案:

答案 0 :(得分:2)

您的某些文件在某种程度上格式错误。您应该在循环中添加异常处理,这将允许转换继续并指示哪些文件导致了问题:

//***************************//
// Menu Button        
jQuery(document).ready(function(){
    jQuery('#nav-icon').click(function(){
        jQuery('#mainmenu').toggleClass('menuview');
        jQuery(this).toggleClass('open');
    });
}); 



//***************************//
// Slide Menu
$(function() {
  $(window).scroll(function() {
    var winTop = $(window).scrollTop();
    if (winTop >= 30) {
      $("#topbar").addClass("sticky-nav");
      $("#navdemo").addClass("navdemoon");
      $("#subnav1").addClass("submenudrop");
      $("#subnav2").addClass("submenudrop");
      $("#mainnav1").addClass("menudroppad");
      $("#mainnav2").addClass("menudroppad");
    } else {
      $("#topbar").removeClass("sticky-nav");
      $("#navdemo").removeClass("navdemoon");
      $("#subnav1").removeClass("submenudrop");
      $("#subnav2").removeClass("submenudrop");
      $("#mainnav1").removeClass("menudroppad");
      $("#mainnav2").removeClass("menudroppad");
    }
  })
})


//***************************//
// Video Popup Lightbox
$(".modal-trigger").click(function(e){
  e.preventDefault();
  dataModal = $(this).attr("data-modal");
  $("#" + dataModal).css({"display":"block"});
});

$(".close-modal, .modal-sandbox").click(function(){
  $(".modal").css({"display":"none"});
});


//***************************//
/* Video Preloader*/
var video = document.getElementById("featvideo");
var url = "../video/video-home.mp4";
var progressBar = document.getElementsByClassName('.progress-bar')[0];

var xhr = new XMLHttpRequest();
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.open("GET", url, true);
xhr.responseType = "arraybuffer";
xhr.onload = function(oEvent) {
  var blob = new Blob([oEvent.target.response], {type: "video/mp4"});
  video.src = URL.createObjectURL(blob);
};
xhr.onprogress = function(oEvent){
  if(oEvent.lengthComputable) {
    var percentComplete = (oEvent.loaded/oEvent.total)*100;
    var completion = Math.round(percentComplete) + '%';
    progressBar.setAttribute('valuenow', completion);
    progressBar.style.width = completion + '%';
    progressBar.innerHtml = completion + '%';
  }
}
xhr.send();

然后,您可以尝试在Excel中打开失败的文件,看看它们是否加载正常。如果他们确实加载了,你可以将一个失败的Excel文件的示例上传到像pastebin这样的东西,并在这里添加一个带有链接的注释,这样就可以重新创建问题。