对于这段代码,我试图在文本文件中交换两个列,但是当运行column2 name' column2'未定义
file = open("class1.txt", 'r')
lines = file.readlines()
file.close()
for line in lines:
parts = line.split() # split line into parts
if len(parts) > 1:
column1 = parts[0]
if len(parts) < 1:
column2 = parts[1]
file = open("class1.txt", 'w')
file.write(("\n") + str(column2) + str(column1))
file.close()
答案 0 :(得分:1)
你搞砸了这部分:
if len(parts) < 1: column2 = parts[1]
我很确定你不想访问一个不存在的元素。
但无论如何,你不想依赖可能存在或不存在的变量。一定要给他们一些理智的默认值。
答案 1 :(得分:0)
with
语句,则可以避免打开和关闭,然后像现在一样打开和关闭。您可以打开这两个文件来完成您的流程。如果输入文件中的每一行都有两列,那么就像这样简单:
with open ("class1.txt", 'r') as fin, open("class2.txt", 'w') as fout:
for line in fin.readlines():
parts = line.split()
fout.write(parts[1]+' '+parts[0]+'\n']
但是如果你有一些列有一列而有些有两行以上,你就必须做更多的事情。你的文件怎么样,你需要输出怎么样?