过去几个小时我一直试图缩小问题的范围,我看不到它。我是Python 3的新手,并尝试解析项目的文本文件。 解析只是清理一些空格并替换分隔符。 我不明白为什么它不会工作。
更具体地说 我收到了这个特殊的错误:
"NameError: name 'out' is not defined"
代码:
save_path = 'C:/UsersDesktop/CSVproject'
with open('C:/Users/CSVproject/sourceData.dat', 'r') as f:
for line in f:
if ':DUBLIN' in line:
line = line.replace(' ', '')
line = line.replace(':', ';')
print(line)
found = True
fullNameOfFile = os.path.join(save_path, 'newFormattedData'+".csv")
out = open(fullNameOfFile, 'w')
for line in f:
out.write(line)
答案 0 :(得分:2)
每次出现单词:DUBLIN时,您都试图打开文件。你只需要打开一次,你应该在一个范围打开它,在那里范围确保句柄对于write方法是可见的。
fullNameOfFile = os.path.join(save_path, 'newFormattedData'+".csv")
out = open(fullNameOfFile, 'w')
for line in f:
if ':DUBLIN' in line:
line = line.replace(' ', '')
line = line.replace(':', ';')
print(line)
found = True
out.write(line)
你绝对不希望有一个嵌套循环来迭代输入文件。