Python名称错误:未在Linux中定义名称

Python名称错误:未在Linux中定义名称,python,linux,python-3.x,Python,Linux,Python 3.x,我的一些脚本出现了一个奇怪的错误。这些代码与上周的代码相同 我的代码: import ipaddress import csv from csv import DictReader, DictWriter import operator import time import os import datetime from datetime import datetime cnt=1 FMT='%a %b %d %H:%M:%S %Y' start_time=str(time.strftim

我的一些脚本出现了一个奇怪的错误。这些代码与上周的代码相同

我的代码:

import ipaddress
import csv
from csv import DictReader, DictWriter
import operator
import time
import os
import datetime
from datetime import datetime

cnt=1

FMT='%a %b %d %H:%M:%S %Y'

start_time=str(time.strftime("%c", time.localtime()))

forpth=r'/home/path/Geo_Assigned'

forfiles=[os.path.join(forpth, fname) for fname in os.listdir(forpth)if fname.startswith('DC')]
forlat=max(forfiles, key=os.path.getmtime)

mskcmlst=['255.255.255.254', '255.255.255.252', '255.255.255.248', '255.255.255.240', '255.255.255.224', '255.255.255.192', '255.255.255.128', '255.255.255.0', '255.255.254.0', '255.255.252.0', '255.255.248.0', '255.255.240.0', '255.255.224.0', '255.255.192.0', '255.255.128.0', '255.255.0.0', '255.254.0.0', '255.252.0.0', '255.248.0.0', '255.240.0.0', '255.224.0.0', '255.192.0.0', '255.128.0.0', '255.0.0.0']


alphlst=[]
WaitList=[]

cmpmask=ipaddress.ip_address('255.255.255.254')

msk32=ipaddress.ip_address('255.255.255.255')

n=0

with open(forlat, newline='') as fin:

    read = DictReader(fin)

    for line in read:
        line['CIDR']=ipaddress.ip_network(line['CIDR'])
        line['Mask']=line['CIDR'].netmask
        lwmask=str(line['Mask'])
        alphlst.append(line)
        print(lwmask)



print("This is lowest mask: {}".format(lwmask))

endnum=mskcmlst.index(lwmask)+1

print("This is endnum {}".format(endnum))
我得到了一个错误:

  File "Vtst-linux.py", line 46, in <module>
    print("This is lowest mask: {}".format(lwmask))
NameError: name 'lwmask' is not defined
文件“Vtst linux.py”,第46行,在
打印(“这是最低掩码:{}”。格式(lwmask))
名称错误:未定义名称“lwmask”
我在Linux Ubuntu Python版本3.4.1和3.4.0上遇到了这个错误,但在相同Python版本的Windows上却没有。我已经在Linux服务器上的虚拟环境中尝试过这个方法,并且只是从安装路径运行,结果相同。输入文件基本上是一组CIDR表示法的IP网络


感谢您的帮助,我对此感到困惑,我尝试过更改变量名和其他事情,但没有任何帮助。

变量
lwmask
未定义,您尝试使用它

如果读取:循环中的行的
不包含任何项,并且未执行定义
lwmask
的内部块,则可能发生这种情况


现在,您应该研究它为什么不包含任何行。

您的代码注定会失败,因为您定义
lwmask
for
循环将不会执行。是否确实使用非空文件作为输入?
print(lwmask)
是否在linux上生成输出?不确定,但这不是python 3的作用域问题吗?也就是说,lwmask在for循环之后会离开作用域,不是吗?@goingWarn No.A for循环不会创建本地作用域。是的,文件是空的。我以为我查过了。谢谢