测试当前字符是否是字符串中的最后一个字符(Python)

时间:2019-07-17 16:50:27

标签: python string if-statement character

当前正在使用python脚本将csv转换为sql文件。生成csv时,未将NULL输入到文本文件中。因此,我必须解析数据,并且如果彼此之间有逗号(例如:、、),那么我知道我需要在两者之间输入一个空值。我在测试以查看记录中的最后一列是否为null时遇到问题。目前,我正在寻找逗号,如果之后找到另一个,它将设置为null,但最后只是一个逗号,然后字符串结束。

我尝试在这里四处寻找,我发现的大部分内容都与此link类似。我发现的不是解决当前问题的方法。

看看一个小的代码片段,看看我目前的工作方式(不起作用):

for text in line:
    if(text == ',' and line[indexCurrent+1]==None):
        newLine = line[indexCurrent] + '"NULL"' + line[indexCurrent+1]    

这些是我当前的结果:

从此行:

2816 ,, "Jeremie Hermiston",, "789-yb-20772",

我得到这一行:

2816 ,"NULL", "Jeremie Hermiston","NULL", "789-yb-20772",

我想要这一行:

2816 ,"NULL", "Jeremie Hermiston","NULL", "789-yb-20772","NULL"

您还可以假定逗号是字符串中的最后一个字符,最后一个逗号后没有任何内容(甚至没有空格)。

1 个答案:

答案 0 :(得分:1)

我设法使用re模块取得了您要求的结果。这是您的选择吗?

为清楚起见,分两个步骤,首先将所有的','替换为',“ None”,',然后将终止逗号(',$'; $是行锚的结尾)替换为', “无”'

a = '2816 ,, "Jeremie Hermiston",, "789-yb-20772",'
b = re.sub(',,',',"None",',a)
b = re.sub(',$',',"None"',b)