EOL扫描字符串文字时

时间:2014-04-20 02:01:19

标签: python

这是我的代码并收到以下错误消息: 第8行sepFile = readFile.read()。split('\') SyntaxError:扫描字符串文字时的EOL 你可以帮帮我吗? 感谢。

import matplotlib.pyplot as plt
import numpy as np
x=[]
y=[]

readFile = open (("/Users/Sun/Desktop/text58.txt"), 'r')

sepFile=readFile.read().split('\')
readFile.close()

For plotPair in sepFile:
    xANDy=plotPair.split(',')
    x.append(int(xAndy[2]))
    y.append(int(xAndy[1]))
print x
print y

plt.plot(x,y)

plt.title('tweet')
plt.xlabel('')
plt.ylabel('')
plt.show()

3 个答案:

答案 0 :(得分:4)

\是Python字符串文字中的一个特殊字符:它启动escape sequence

要解决此问题,您需要加倍反斜杠:

sepFile=readFile.read().split('\\')

这样做告诉Python您使用的是文字反斜杠而不是转义序列。


此外,for与Python中的所有关键字一样,需要小写:

for plotPair in sepFile:

答案 1 :(得分:2)

您无法按'\'拆分,它可用于特殊转义序列,例如'\n''\t'。尝试双反斜杠:'\\'。这是您修改后的代码:

import matplotlib.pyplot as plt
import numpy as np
x=[]
y=[]

readFile = open (("/Users/Sun/Desktop/text58.txt"), 'r')

sepFile=readFile.read().split('\\')
readFile.close()

For plotPair in sepFile:
    xANDy=plotPair.split(',')
    x.append(int(xAndy[2]))
    y.append(int(xAndy[1]))
print x
print y

plt.plot(x,y)

plt.title('tweet')
plt.xlabel('')
plt.ylabel('')
plt.show()

Look here for more information on backslashes

答案 2 :(得分:0)

StackOverflow的语法高亮实际上提供了一个很好的线索,说明为什么会发生这种情况!

问题在于这一行:

sepFile=readFile.read().split('\')

...或者更具体地说,这个:

'\'

反斜杠正在逃避最后一个引用,因此Python不知道该字符串已经结束。它将继续运行,但字符串永远不会终止,因此会引发异常。

要修复它,请转义反斜杠:

sepFile=readFile.read().split('\\')