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文件中删除第一行时,输出一个文件名。