python如何把一个文件夹中的所有csv文件的除第一行外每一行都按行号相同输出到一组新的csv文件中
时间: 2024-02-20 17:02:19 浏览: 91
可以使用Python的内置模块`csv`和`os`来实现这个功能。可以按照以下步骤进行操作:
1. 导入`csv`和`os`模块。
2. 定义一个函数,用于读取指定csv文件并返回除第一行外的所有行。
3. 获取指定文件夹下的所有csv文件名。
4. 遍历所有csv文件名,依次读取每个文件,并将除第一行外的所有行写入新的csv文件中。
下面是实现代码及说明:
```python
import csv
import os
def read_csv(file_path):
"""
读取csv文件,返回除第一行外的所有行
"""
with open(file_path, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
rows = [row for idx, row in enumerate(reader) if idx > 0] # 除第一行外的所有行
return rows
folder_path = 'your_folder_path' # 指定文件夹路径
output_folder = 'output_folder' # 指定输出文件夹名称
if not os.path.exists(output_folder):
os.makedirs(output_folder) # 如果输出文件夹不存在,则创建
csv_files = [file for file in os.listdir(folder_path) if file.endswith('.csv')] # 获取指定文件夹下的所有csv文件名
for file in csv_files:
file_path = os.path.join(folder_path, file) # 获取文件的完整路径
rows = read_csv(file_path) # 读取csv文件内容
output_file = os.path.join(output_folder, file) # 输出文件路径
with open(output_file, 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
for idx, row in enumerate(rows):
writer.writerow([idx+1] + row) # 写入行号和原始行内容到新的csv文件中
```
这段代码将会把指定文件夹下的所有csv文件的除第一行外每一行都按行号相同输出到一个新的csv文件中,新的csv文件存放在指定的输出文件夹中。
阅读全文