是什么导致Python错误“错误的转义\ C”?

时间:2018-11-15 21:15:36

标签: python regex bioinformatics python-3.7

我刚刚编写了一个函数,该函数将查看文本文件并计算文本文件中True和False的所有实例。这是我的文件

ATOM     43  CA  LYS A   5      14.038  15.691  37.608  1.00 15.15           C      True
ATOM     52  CA  CYS A   6      16.184  12.782  38.807  1.00 16.72           C      True
ATOM     58  CA  GLU A   7      17.496  12.053  35.319  1.00 14.06           C      False
ATOM     67  CA  VAL A   8      18.375  15.721  34.871  1.00 12.27           C      True
ATOM     74  CA  PHE A   9      20.066  15.836  38.288  1.00 12.13           C      False
ATOM     85  CA  GLN A  10      22.355  12.978  37.249  1.00 12.54           C      False

这是我的代码

def TFCount(txtFileName):   
    with open(txtFileName, 'r') as e:
        T = 0
        F = 0
        for record in e:
            if(re.search(r'^ATOM\s+\d+\s+\CA\s+\w+\s+\w+\s+\d+\s+\d+\.\d+\s+\d+\.\d+\s+\d+\.\d+\s+\d+\.\d+\s+\d+\.\d+\s+\w+\s+\T', record)):
                T += 1
            else:
                F += 1
        print(T)
        print(F)

我很抱歉,如果我的正则表达式很长且很乏味,但是这是我知道计算文件中True发生次数的唯一方法。如您所见,每次程序遇到True时,它将在变量T上加1,否则将为False变量加1。尝试运行该程序后,解释器返回错误:错误的转义符\ C。这个错误是什么意思?我的代码是什么引起的呢?

1 个答案:

答案 0 :(得分:2)

正则表达式的第一部分中有\C

r'^ATOM\s+\d+\s+\CA

您应该只写CA

r'^ATOM\s+\d+\s+CA

没有转义。

稍后您与\T相同。

\X表示转义的X,大部分时间是regex中的特殊序列,例如\d代表数字,\s代表空格。