gpt4 book ai didi

python - 嵌套 if 循环在 python 中未触发

转载 作者:行者123 更新时间:2023-11-30 21:50:39 25 4
gpt4 key购买 nike

我有一个 python 问题,但我不明白为什么它没有触发。下面是代码:

import re 
sfname='C:\python_Script\Testmain.txt'
i=0
Var1='AS'
Var2=''
Var3=''

with open("C:\python_Script\Testmain.txt") as file_in:
lines = []
for line in file_in:
lines.append(line)
if line.startswith('create view [dbo].'):
print (lines[i])
if not line.startswith('create view [dbo].'):
lines[i]=lines[i].replace("_"," ")
lines[i]= re.sub(r"\bid","key",lines[i])
Var2=lines[i]
Var2=re.sub(r"\bkey","Dimension",Var2)
if not line.endswith("Dimension"):
Var2='Fact Table'
Var3=lines[i] +" "+Var1+" "+Var2

print(Var3)
i+=1

我正在读取的文本文件相对简单,其中包含以下属性:

create view [dbo].Ignore_table
communication_channel_id
user_id
bounce_count
assignment_override_id
create view [dbo].test1
id
test1

基本上我想忽略任何带有“create view[dbo]”的内容。并创建一个打印语句,用“Key”替换“ID”一词,添加一个 AS,然后执行以下两件事之一:if) Var2 以“Key”结尾,替换为“Dimension”一词。if) var2 不以“Key”结尾,则将整个内容重命名为“事实表”

但出于某种原因,这一秒如果循环会触发,即使它不以“维度”结尾,并且它始终是“事实表​​”,为什么?

最佳答案

有一些您不需要的变量,例如您的变量i和列表lines,您使用它们来操纵变量的值linefor 循环内的一次性迭代期间,您可以使用变量 line 而无需将其值保留在列表中;您还必须注意每行末尾是新行字符 \n

关于您的问题,为什么 Var2 值始终为 'Fact Table' 主要是因为您正在查看变量 line而不是查看您正在修改的变量 Var2

这是您想要实现的目标的一个版本:

sfname='C:\python_Script\Testmain.txt' 
Var1='AS'
Var2=''
Var3=''

with open(sfname) as file_in:
for line in file_in:
line = line.strip()
if line.startswith('create view [dbo].'):
print(line)

else:
line = line.replace("_", " ")

# replaces the word 'ID' with 'Key'
line = line.replace("id","key")
Var2 = line

# if) Var2 ends with 'Key' replace with the word 'Dimension'.
if Var2.endswith("key"):
Var2 = 'Dimension'
else:
Var2 = 'Fact Table'

Var3 = line + " " + Var1 + " " + Var2

print(Var3)

输出:

create view [dbo].Ignore_table
communication channel key AS Dimension
user key AS Dimension
bounce count AS Fact Table
assignment overrkeye key AS Dimension
create view [dbo].test1
key AS Dimension
test1 AS Fact Table

关于python - 嵌套 if 循环在 python 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306211/

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