【问题标题】:convert multiple text files to csv将多个文本文件转换为 csv
【发布时间】:2017-12-27 03:19:07
【问题描述】:

我在此示例中有 3 个文本文件,并希望将它们转换为 csv 文件: 我可以为一个文件执行此操作,但对于多个文件,我在多次调整代码后发现错误:

    import os
    import glob3


count =1
file_name = "COUNT16_DISTRIBUTION" + str(count*1) + ".txt"

def data_parser(text, dic):
    for i, j in dic.iteritems():
        text = text.replace(i,j)
    return text

while count<=3:
    for count in file_name:
        inputfile = open(file_name)
        outputfile = open("COUNT16_DISTRIBUTION" + str(count*1)+ '.csv', 'w')
        reps = {'"DUT 1"':' ', ' ':' ', ' ':' ' }
        for i in range(7):  inputfile.next()

        count = count + 1
        file_name = "COUNT16_DISTRIBUTION" + str(count * 1) + ".txt"
        for line in inputfile:
            outputfile.writelines(data_parser(line, reps))
    inputfile.close()
    outputfile.close()

在这种特殊情况下,现在我遇到了问题,因为首先我将计数转换为字符串,然后我想将其用作整数以递增并检查条件。任何其他想法或方法或任何改进这种方式的建议?

【问题讨论】:

  • for count in file_name 将遍历file_name 的字母并覆盖或屏蔽count
  • 为 for 循环使用不同的变量名。 count 将采用 file_name 中字母的值。

标签: python csv text


【解决方案1】:

您用于文件计数的变量名count =1 也被用于循环通过for count in file_name: 中的文件名。因此,count 将不再是当前文件号,而是采用file_name 的字符。

您需要做的就是为您的 for 循环使用不同的变量名。例如for c in file_name:

【讨论】:

  • 谢谢。我将计数更改为“c”。现在,当我创建一个 csv 文件时,一个单元格包含应该在 2 个单元格中的值。我能做些什么来将 2 个值放在 2 个单元格而不是一个单元格中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
相关资源
最近更新 更多