Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 在观察到N个特殊字符后添加换行符_Python_Python 3.x - Fatal编程技术网

Python 在观察到N个特殊字符后添加换行符

Python 在观察到N个特殊字符后添加换行符,python,python-3.x,Python,Python 3.x,我有一个要求,其中我有一个CSV文件的数据格式错误。但是,根据管道的数量,我需要添加一个换行符,并准备好数据以供使用 我们可以数一数管道的数量并添加换行符\n字符吗 例如: sadasd|asdasd|l||||0sds|sdsds|2||||0sdsd|asdasd|l||||0 预期产出: sadasd|asdasd|l||||0 sds|sdsds|2||||0 sdsd|asdasd|l||||0 . 像这样的 _in = "sadasd|asdasd|l

我有一个要求,其中我有一个CSV文件的数据格式错误。但是,根据管道的数量,我需要添加一个换行符,并准备好数据以供使用

我们可以数一数管道的数量并添加换行符
\n
字符吗

例如:

sadasd|asdasd|l||||0sds|sdsds|2||||0sdsd|asdasd|l||||0    
预期产出:

sadasd|asdasd|l||||0   
sds|sdsds|2||||0    
sdsd|asdasd|l||||0    .
像这样的

_in = "sadasd|asdasd|l||||0sds|sdsds|2||||0sdsd|asdasd|l||||0"

_out = ""
pipeCount = 0
for char in _in:
    if pipeCount == 6:
        _out = _out+char+"\n"
        pipeCount = 0
    else:
        _out = _out+char
    if char == "|":
        pipeCount += 1

print(_out)
我不确定我是否理解添加换行符的标准(请参见对问题的评论),但我的输出符合您的期望:

sadasd|asdasd|l||||0
sds|sdsds|2||||0
sdsd|asdasd|l||||0

输出仍然是一个字符串,但您也可以轻松地将其设置为一个字符串列表。

起初我认为这可能由正则表达式解决,但现在我不确定。我不太明白你想用什么标准来插入换行符哦。。yoyu的意思是在6个管道后面的“0”后面添加一个换行符吗?为什么不把“0”作为标准呢?或者“|0”?为什么不
mystr.replace(“|124;|124;|0”、“|124; 124;||0\n”)
?使用大写C听起来非常不祥如果我必须为一个文件这样做,我只需要将其读取为变量并应用相同的值。对吗?…使用open或
csv
库查看
。使用
csv
读取csv文件通常是一个很好的开始: