在python中向追加输出csv文件添加日期列

在python中向追加输出csv文件添加日期列,python,csv,append,Python,Csv,Append,我使用下面的代码组合所有csv文件:下面每个文件有10000行: 账单报告2014-02-01.csv 账单报告2014-02-02.csv : 但是现在我想在out.csv文件中添加新的日期列,我如何才能在out.csv文件中添加日期列,并将值2014-02-01添加到我附加到out.csv的计费报告中的每一行,以及 将2014-02-02的值添加到我将计费报告添加到out.csv的每一行。我该如何处理这个问题 我想你可以在末尾加上日期: for line in open("billing_r

我使用下面的代码组合所有csv文件:下面每个文件有10000行:

账单报告2014-02-01.csv 账单报告2014-02-02.csv :

但是现在我想在out.csv文件中添加新的日期列,我如何才能在out.csv文件中添加日期列,并将值2014-02-01添加到我附加到out.csv的计费报告中的每一行,以及
将2014-02-02的值添加到我将计费报告添加到out.csv的每一行。我该如何处理这个问题

我想你可以在末尾加上日期:

for line in open("billing_report_2014-02-0"+str(num)+".csv"):
     fout.write(line+',DATE INFORMATION') 
我认为您的CSV实际上是逗号分隔的,如果是制表符分隔的,字符应该是\t

您也可以通过更改行来使用中间步骤:

line = line + ', DATE INFORMATION'
当您试图添加文件名date时,只需按变量添加:

line = line + ', 2014-02-0'+ str(num//10)
如果replace函数始终是,LLC字符串表达式,则可以使用它,请参见下面的示例

>>> string = "100, 90101, California, Example company,LLC, other data"
>>> string.replace(',LLC',';LLC')
'100, 90101, California, Example company;LLC, other data'
>>> 
把这一切放在一起,并试图从@Jon CLements身上带来一些灵感,同时也带来荣誉!:

def combine_and_add_date(year, month, startday, endday, replace_dict):
    fout=open("out.csv","a")
    for num in range(startday,endday+1):
        daynum = str(num)
        if len(daynum) ==1:
            daynum = '0'+daynum

        date_info = str(year+'-'month+'-'+daynum)
        source_name = 'billing_report_'+date_info+'.csv'

        for line in open(source_name):
            for key in replace_dict:
                line.replace(key,replact_dict[key])

            fout.write(line+','+date_info) 

    fout.close()
我希望这能奏效,你也应该希望我是个新手。。。像这样使用它,注意字典的设计允许你进行各种替换

combine_and_add_date("2014","02",1,28, {',LLC': ';LLC', ',PLC':';PLC'}) 

祈祷吧

我想你可以在末尾加上日期:

for line in open("billing_report_2014-02-0"+str(num)+".csv"):
     fout.write(line+',DATE INFORMATION') 
我认为您的CSV实际上是逗号分隔的,如果是制表符分隔的,字符应该是\t

您也可以通过更改行来使用中间步骤:

line = line + ', DATE INFORMATION'
当您试图添加文件名date时,只需按变量添加:

line = line + ', 2014-02-0'+ str(num//10)
如果replace函数始终是,LLC字符串表达式,则可以使用它,请参见下面的示例

>>> string = "100, 90101, California, Example company,LLC, other data"
>>> string.replace(',LLC',';LLC')
'100, 90101, California, Example company;LLC, other data'
>>> 
把这一切放在一起,并试图从@Jon CLements身上带来一些灵感,同时也带来荣誉!:

def combine_and_add_date(year, month, startday, endday, replace_dict):
    fout=open("out.csv","a")
    for num in range(startday,endday+1):
        daynum = str(num)
        if len(daynum) ==1:
            daynum = '0'+daynum

        date_info = str(year+'-'month+'-'+daynum)
        source_name = 'billing_report_'+date_info+'.csv'

        for line in open(source_name):
            for key in replace_dict:
                line.replace(key,replact_dict[key])

            fout.write(line+','+date_info) 

    fout.close()
我希望这能奏效,你也应该希望我是个新手。。。像这样使用它,注意字典的设计允许你进行各种替换

combine_and_add_date("2014","02",1,28, {',LLC': ';LLC', ',PLC':';PLC'}) 

祈求好运

列出您要处理的文件名,然后从中获取数据,在输入文件上构建一个生成器,删除尾随的新行,并添加一个带有日期的新字段。。。例如:

filenames = [
  'billing_report_2014-02-01.csv',
  'billing_report_2014-02-02.csv'
]

with open('out.csv', 'w') as fout:
    for filename in filenames:
        to_append = filename.rpartition('_')[2].partition('.')[0]
        with open(filename) as fin:
            fout.writelines('{},{}\n'.format(line.rstrip(),to_append) for line in fin)

列出要处理的文件名,然后从中获取数据,在输入文件上构建一个生成器,删除尾随的新行,并添加一个带有日期的新字段。。。例如:

filenames = [
  'billing_report_2014-02-01.csv',
  'billing_report_2014-02-02.csv'
]

with open('out.csv', 'w') as fout:
    for filename in filenames:
        to_append = filename.rpartition('_')[2].partition('.')[0]
        with open(filename) as fin:
            fout.writelines('{},{}\n'.format(line.rstrip(),to_append) for line in fin)

@纳布拉,你能澄清一下吗?我对python相当陌生。谢谢我所说的在这种情况下是没有必要的,我评论得太快了。尽管如此,您可能希望查找该模块,它有助于处理csv文件。还有一个模块,可以简化日期格式,请参见。@Nabla您能稍微澄清一下吗?我对python相当陌生。谢谢我所说的在这种情况下是没有必要的,我评论得太快了。尽管如此,您可能希望查找该模块,它有助于处理csv文件。还有一个模块,它可以简化日期格式,请参阅。我想他可能想要实际日期。@2705114 john这几乎可以工作了,我的文件是逗号分隔的,但在业务栏下有一个公司有companyname,LLC。因此,当我使用上面的代码时,有company with的行,LLC.将进一步增加一列。我怎么才能真正解决这个问题呢?我想他可能想要实际日期。@2705114 john这几乎可以工作了,我的文件是逗号分隔的,但在业务栏下有一个公司有companyname,LLC。所以当我使用上面的代码时,有company with,LLC.的行将进一步移动到另一列。我怎样才能真正解决这个问题呢?好的,我知道了文件名的相关信息。。我应该把它放在我自己身上的。好的,我知道文件名的一些信息。。我应该把它放在我自己身上。