【发布时间】:2011-03-29 16:02:55
【问题描述】:
在我的程序中,我有一个文件,然后我通读了 for 循环中的所有行,检查每一行的开头。然后将每一行添加为变量。其中有 40 多行,它们几乎都相同,但是其中一个 elif 语句不返回 true .startswith 不起作用。无论如何,这里是文件内容,基本上是一堆保存的信息 fN 将是我保存的变量,而 john 将是我想要的。所以这个方法就是这样做的,或者它应该是这样的
fN:john
fP:1
fE:father email
mN:mother name
mP:1
mE:mother email @ bomg.com
a:1233 adress lane
c:city
s:state
zC:1234534
hP:(1928)phone-1123
cP:1113333
eN:emergancy
eNu:number
c1N:cluubiie 1
c1G:1st
c1B:1-23-34
c2N:clubbie 2
c2G:grade 2
c2B:birth 2
c3N:clubb 3
c3G:grade 3
c3B:birth 3
方法
def fillWindow(self,student):
global fileDirectory
location = os.path.join(fileDirectory, student + '.txt')
file = open(location, 'r')
for line in file.xreadlines():
if line.startswith('fN'):
fN = line.split(':')[1]
elif line.startswith('fP'):
fP = line.split(':')[1]
elif line.startswith('fE'):
fE = line.split(':')[1]
elif line.startswith('mN'):
mN = line.split(':')[1]
elif line.startswith('mP'):
mP = line.split(':')[1]
elif line.startswith('mE'):
mE = line.split(':')[1]
elif line.startswith('a'):
a = line.split(':')[1]
elif line.startswith('c'):
c = line.split(':')[1]
elif line.startswith('s'):
s = line.split(':')[1]
elif line.startswith('zC'):
zC = line.split(':')[1]
elif line.startswith('hP'):
hP = line.split(':')[1]
这里永远不会返回 True,即使文件中有一行以 cP 开头
elif line.startswith('cP'):
cP = line.split(':')[1]
print('True')
elif line.startswith('eN'):
eN = line.split(':')[1]
elif line.startswith('eNu'):
eNu = line.split(':')[1]
elif line.startswith('c1N'):
c1N = line.split(':')[1]
elif line.startswith('c1G'):
c1G = line.split(':')[1]
elif line.startswith('c1B'):
c1B = line.split(':')[1]
elif line.startswith('c2N'):
c2N = line.split(':')[1]
elif line.startswith('c2G'):
c2G = line.split(':')[1]
elif line.startswith('c2B'):
c2B = line.split(':')[1]
elif line.startswith('c3N'):
c3N = line.split(':')[1]
elif line.startswith('c3G'):
c3G = line.split(':')[1]
elif line.startswith('c3B'):
c3B = line.split(':')[1]
elif line.startswith('c4N'):
c4N = line.split(':')[1]
elif line.startswith('c4G'):
c4G = line.split(':')[1]
elif line.startswith('c4B'):
c4B = line.split(':')[1]
【问题讨论】:
标签: python file-io for-loop if-statement