<p>有一些变量是您不需要的,例如您的变量<code>i</code>和列表<code>lines</code>,您正在使用它们来操作变量<code>line</code>的值。在<code>for</code>循环内的一次性迭代期间,您可以使用变量<code>line</code>,而无需将其值保留在列表中;您还必须注意,每行的末尾是新行字符<code>\n</code></p>
<p><strong>关于您的问题,为什么<code>Var2</code>值总是<code>'Fact Table'</code>主要是因为您查看的是变量<code>line</code>,而不是正在修改的变量<code>Var2</code></strong></p>
<p>以下是您试图实现的目标的一个版本:</p>
<pre><code>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)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>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
</code></pre>