gpt4 book ai didi

使用正则表达式 (re) 删除多余换行符的 Python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:28 27 4
gpt4 key购买 nike

我有一个制表符分隔的文本文件,其中可能包含一些包含换行符的值,如下所示:

        col1    col2    col3

row1 val1 "Some text
containing newlines. Yup, possibly
more than one..." val3
row2 val4 "val5" val6

注意:

  • 包含换行符的文本值保证最初用双引号括起来
  • 行数或列数可能不同。
  • 任何值都可以是文本或数字,可以包含换行符并且不能

我正在尝试使用 re 编写一个小的 Python 脚本,以便:

  • 去掉额外的换行符(但保留原来的换行符,即在每一行的末尾)
  • 用双引号将每个值括起来

如果有这样的形式就好了:

def normalize_format(data, delimiter = '\t'):
data = re.sub(_DESIRED_REGEX_, r'"\1"', data)
return data

data 是作为单个字符串的整个文件内容,_DESIRED_REGEX_ 是我想知道的内容

re 的使用不是强制性的,但简短而优雅的解决方案值得赞赏:)

最佳答案

您应该使用 csv module相反:

import csv
with open("mycsv.csv", "rb") as infile, open("newcsv.csv", "wb") as outfile:
reader = csv.reader(infile, delimiter="\t")
writer = csv.writer(outfile, delimiter="\t", quoting=csv.QUOTE_ALL)
# Now you can remove all the newlines within fields
# and write them back to a new CSV file:

for row in reader:
writer.writerow([field.replace("\n", " ") for field in row])

关于使用正则表达式 (re) 删除多余换行符的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18805925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com