Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用逗号替换多种类型的分隔符_Python_Python 3.x_Replace - Fatal编程技术网

Python 如何用逗号替换多种类型的分隔符

Python 如何用逗号替换多种类型的分隔符,python,python-3.x,replace,Python,Python 3.x,Replace,我在文本文件中有以下字符串 SCF Done:E(RHF)=-100.055079426 A.U.,在9个循环后 我们的目标是将这个字符串转换成csv类型的数据,方法是去掉所有不需要的空白并用逗号替换。这是我到目前为止所拥有的 import csv f = open('testfile1','r') x = f.readlines() s = [] for line in x: line = line.strip(' ') line = line.replace('

我在文本文件中有以下字符串

SCF Done:E(RHF)=-100.055079426 A.U.,在9个循环后

我们的目标是将这个字符串转换成csv类型的数据,方法是去掉所有不需要的空白并用逗号替换。这是我到目前为止所拥有的

import csv


f = open('testfile1','r')

x = f.readlines()

s = []

for line in x:

    line = line.strip(' ')

    line = line.replace('  ',',')

    s.append(line)

csvex = csv.writer(open('name.csv', "w"), quoting=csv.QUOTE_ALL)

csvex.writerow(s)

代码给出了以下输出

"SCF Done:,E(RHF) =,-100.055079426,, A.U. after,,9 cycles
"
我想让代码给我以下输出


"SCF,Done:,E(RHF),=,-100.055079426,A.U.,after,9,cycles"

我该如何着手解决这个问题

csvwriter.writerow
接受iterable(列表、元组等)()

此脚本逐行读取输入文件,拆分该行并将该行写入csv文件

如果
file.txt
包含:

SCF Done:  E(RHF) =  -100.055079426     A.U. after    9 cycles
然后这个脚本:

import csv

with open('file.csv', 'w') as f_out, \
    open('file.txt', 'r') as f_in:
    csvex = csv.writer(f_out, quoting=csv.QUOTE_MINIMAL)
    for line in f_in:
        csvex.writerow(line.strip().split())
编写csv文件
file.csv
,内容如下:

SCF,Done:,E(RHF),=,-100.055079426,A.U.,after,9,cycles

“,”.join(line.split())是一个函数,它将拆分,然后在每个空间插入“,”。

!如果我不是一个麻烦,我有两个问题。首先,我没有看到您在哪里插入了
作为分隔符。python如何知道在去掉空白后插入什么?另外,
QUOTE_MINIMAL
在代码中到底实现了什么。@JM8
csv
模块正在使用逗号作为默认分隔符写入csv文件
QUOTE_MINIMAL
表示如果字符串中有分隔符或其他引号字符,它将引用这些字段。更多信息请点击这里
import csv

file = open("testfile1",'r')
x=file.readlines()

s=[]
for line in x:

    line = line.strip(' ')
    line = ",".join(line.split())
    s.append(line)

csvex = csv.writer(open("name.csv", "w"), quoting=csv.QUOTE_ALL)

csvex.writerow(s)