当前位置:嗨网首页>书籍在线阅读

11-第3步_写入CSV文件,且没有第一行

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第3步:写入CSV文件,且没有第一行

现在 csvRows 包含了除第一行的所有行,该列表需要被写入 headerRemoved 文件夹中的一个CSV文件。将以下代码添加到removeCsvHeader.py:

   #! python3
   # removeCsvHeader.py - Removes the header from all CSV files in the current
   # working directory.
   --snip--
   # Loop through every file in the current working directory.
❶ for csvFilename in os.listdir('.'):
        if not csvFilename.endswith('.csv'): 
             continue # skip non-CSV files
        --snip--
        # Write out the CSV file.
        csvFileObj = open(os.path.join('headerRemoved', csvFilename), 'w', 
        newline='')
        csvWriter = csv.writer(csvFileObj)
        for row in csvRows:
             csvWriter.writerow(row)
        csvFileObj.close()

CSV writer 对象利用 csvFilename (这也是我们在CSV reader 中使用的文件名),将列表写入 headerRemoved 中的一个CSV文件。这将覆盖原来的文件。

创建 writer 对象后,我们循环遍历存储在 csvRows 中的子列表,并将每个子列表写入CSV文件。

这段代码执行后,外层 for 循环❶将循环到 os.listdir('.') 中的下一个文件名。循环结束时,程序就结束了。

为了测试你的程序,从异步社区对应页面下载removeCsvHeader.zip,并将它解压缩到一个文件夹。在该文件夹中运行removeCsvHeader.py程序。输出将是这样的:

Removing header from NAICS_data_1048.csv...
Removing header from NAICS_data_1218.csv...
--snip--
Removing header from NAICS_data_9834.csv... 
Removing header from NAICS_data_9986.csv...

这个程序应该在每次从CSV文件中删除第一行时,输出一个文件名。