python : unable to convert text to csv properly

标签 python

尝试将文本文件转换为 csv,但在转换后的文件中,我在每行的开头和结尾处得到方括号,并在每个字符周围加上单引号。

在第一步中,我尝试删除单引号,但这似乎不起作用

代码如下:

with open('New-file_0.csv','w') as p3:
    with open ('New-file_1','r') as p2: 
        for line in p2: 
            if not line.isspace(): 
                print(line.split(),file = p3)

with open ('final-file_1.csv','w') as p2:
    with open('New-file_0.csv','r') as p3: 
        for line in p3: 
            line=line.replace("'","") 
            print(line.split(),file = p2)

最佳答案

这里有几个问题:

  1. 通常使用 p3.write(myline),而不是打印到文件。

  2. split() 生成列表,您当前将其提供给打印函数,以便将它们写入您的文件。你想给他们的是一个字符串,例如",".join(line.split())

  3. 由于在这种情况下,您想要生成一个 .csv 文件,因此最好避免所有这些并使用内置 csv 模块,该模块将负责将列表转换为字符串:

    import csv
    
    with open(output_file,'wb') as p3: # make sure to use 'wb' for binary writing, or you will get unwanted empty rows
        output_data = csv.writer(p3, delimiter=",")
        with open (input_file,'r') as p2:
            for line in p2:
                row = line.strip().split()
                if row:
                    output_data.writerow(row)
    

(此模块还允许使用 csv.read() 将 .csv 文件读取到行列表中)。

关于 python : unable to convert text to csv properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144847/

相关文章:

python - 将一个字符串分成一定长度的较小字符串列表

python - Pandas 应用处理比现有数据框更多的行

python - 带有喜欢和日期的 Pandas 查询功能

python - 将 SQL 数据加载到 iPython 中

python - 列表元素的代数运算

python - 处理多个应用程序覆盖 Django 中的管理命令

python - Jython 的 IronClad 等价物

python - 解释 Python 的站点包。我要把我的图书馆放在那里吗?

python - MemoryError 与 numpy arange

python - SQLAlchemy 和原始 SQL : List as an input