使用python删除多个csv文件的前2行

使用python删除多个csv文件的前2行,python,csv,delete-row,Python,Csv,Delete Row,我有一个csv文件目录(有几个子文件夹)。在将csv文件上载到数据库(SQL server)之前,我想删除所有csv文件的前两行。我从位于一个文件夹(没有子文件夹)中的csv文件的一小部分开始使用以下python脚本,尽管脚本运行成功,但没有从文件中删除任何行。我错过了什么: import glob import csv myfiles = glob.glob("C:\Data\*.csv") for file in myfiles: lines = open(file).readli

我有一个csv文件目录(有几个子文件夹)。在将csv文件上载到数据库(SQL server)之前,我想删除所有csv文件的前两行。我从位于一个文件夹(没有子文件夹)中的csv文件的一小部分开始使用以下python脚本,尽管脚本运行成功,但没有从文件中删除任何行。我错过了什么:

import glob
import csv

myfiles = glob.glob("C:\Data\*.csv")
for file in myfiles:
    lines = open(file).readlines()
    open(file, 'w').writelines(lines[1:])
以下是我的示例数据:

"Title: Distribution of Nonelderly Population by Household Employment Status | The Henry J. Kaiser Family Foundation"
"Timeframe: 2015"
"Location","At Least 1 Full Time Worker","Part Time Workers","Non Workers","Total"
"United States","0.82","0.08","0.10","1.00"
"Alabama","0.79","0.06","0.15","1.00"
"Alaska","0.85","0.06","0.09","1.00"
"Arizona","0.80","0.08","0.12","1.00"
"Arkansas","0.78","0.07","0.15","1.00"
"California","0.81","0.08","0.10","1.00"
我希望与编辑的输出csv文件保持相同的目录结构。 我们将非常感谢您的帮助

试试这个:

import os

# Change this to your CSV file base directory
base_directory = 'C:\\Data'    
for dir_path, dir_name_list, file_name_list in os.walk(base_directory):
    for file_name in file_name_list:
        # If this is not a CSV file
        if not file_name.endswith('.csv'):
            # Skip it
            continue
        file_path = os.path.join(dir_path, file_name)
        with open(file_path, 'r') as ifile:
            line_list = ifile.readlines()
        with open(file_path, 'w') as ofile:
            ofile.writelines(line_list[2:])

注意:不要将文件用作变量名,否则会破坏内置类。

那么,问题是什么?您遇到了什么问题?我在一个文件夹(没有子文件夹)中尝试了csv文件的一小部分,上面的脚本虽然成功运行,但没有删除任何行。您是否应该在以写入模式打开文件之前关闭该文件?请在问题中描述您的实际问题,而不是在注释中描述。你可能还想看看
os.walk
如果他所有的csv文件都在同一个平面目录中,那么就不需要使用os.walk了。上面我更新了答案,用
os.walk
处理任意目录结构。