将数据文件附加到CSV文件并输出到另一个CSV文件

时间:2014-02-02 17:26:58

标签: python csv tabs append

这可能是封面的,如果有的话道歉。我在搜索下找不到确切的答案。我所拥有的基本上是3个文件。第一个是主要短语的文本文件,第二个文件是大约1600行和3行(城市,州和邮政编码)的csv文件,第三个文件是带有次要短语的文本文件。

我想要做的是获取文件一(只有一个短语,例如;信誉管理)并将其附加到csv文件中“each”行的开头,然后从csv中删除逗号/制表符文件然后将thrid文本文件追加到行尾(第三个文本文件也只有一个短语,例如;在线声誉公司),然后取csv的第二列作为状态并将其附加到最后一行。

我想要实现的示例输出如下所示:

声誉管理凤凰城亚利桑那州87443 - 在亚利桑那州寻找声誉公司

声誉管理Tuscon Arizona 87444 - 联系亚利桑那州的在线声誉公司

声誉管理Albert Arizona 87445 - 在亚利桑那州寻找声誉公司

这是我到目前为止的代码,但我被卡住了。它不是删除选项卡,它只是将第一个文本文件附加到输出csv中的第一行而不是其他1599行。此外,当它到达类型(secondarykeywordlist)时,我得到一个'_io.TextIOWrapper'类型的对象没有len()

非常感谢任何帮助。

file = open('wordpress_input_file.csv', 'w')
file.write('' + type(mainkeywordlist).title().strip() + ' ' + ''.join(open('data_files/cities/arizona_cities.csv', 'r').readlines()).strip(",\n") + ' - ' + type(concat2).title().strip() + ' ' + type(secondarykeywordlist).title().strip() + '')
file.close()

如果我取出了secondarykeywordlist,那么我的输出现在就是这样的,我收到错误将其重新输入。

声誉管理Phoenix Arizona 87443,查找

编辑: 我在Windows 7上运行Python。以下是3个文件的内容。

文件1文本文件(仅1行):声誉管理

文件2 csv文件(1600行和3行):

  
    
      

亚利桑那州凤凰城,87443

             

凤,图森,87444

             

凤,艾伯特,87445

             

    
  

文件3文本文件(仅1行):在线声誉公司


解决问题的解决方案:这是现在运行良好的工作代码。谢谢大家的贡献。

f_in = open("data_files/main_keyword.txt",'r')
prefix = f_in.read().strip()

f_in = open("data_files/secondary_keyword.txt", "r")
postfix = "%s\n" % (f_in.read().strip())

f_in = open('data_files/cities/texas_cities.csv', 'r')
f_out = open('wordpress_input_file.csv', 'w')
for line in f_in.readlines():
    f_out.write(prefix.title() + ' ' + line.strip().replace(","," ") + ' - ' +      type(concat2).title().strip() + ' ' + postfix.title().strip() + ' In ' + line.split(",")[1]+"\n" + '')
f_in.close()
f_out.close()

2 个答案:

答案 0 :(得分:1)

您需要处理每一行

类似的东西:

with open("File1",'r') as f:
    prefix = f.read().strip()

with open("File", "r") as f:
    postfix = "%s\n" % (f.read().strip())

with open("csvfile", "r") as f:
   with open("outfile", "w") as g:
       for line in f.read():
           txt =line.strip().replace(',',' ')
           g.write( ' '.join([prefix, txt, postfix]) 

答案 1 :(得分:1)

为什么不打开第一个和第三个文件,分别从前缀和后缀变量中获取表达式,然后打开第二个文件(1600行)并将处理后的输出写入第四个文件(out.txt - 这将包含你想要的结果)。 代码(在您获取前缀和后缀之后)将是:

f_in = open('file2.txt', 'r')
f_out = open('out.txt', 'w')
for line in f_in.readlines():
    f_out.write(prefix + ' ' + line.strip().replace(","," ") + \
    " " + suffix + " " +         line.split(",")[1]+"\n")
f_in.close()
f_out.close()