我有一个文本文件,其中包含重复的数字和其他数据:
BMW 11 N_123
Benz 123 N_123
Ford 342 N_123
Fr 11 N_126
Benz 123 N_126
Ford 342 N_126
Toyta 11 N_124
Nissan 12 N_124
Honda 145 N_124
我想将带有关联信息的重复号码写入不同的文本文件,如:
(同一档案中没有相同的号码)
文件1
BMW 11 N_123
Fr 11 N_126
Toyota 124 N_124
文件2
Benz 123 N_123
Benz 123 N_126
Nissan 12 N_124
文件3
Ford 342 N_123
Ford 12 N_126
Honda 145 N_124
我的代码:
f = open('test.txt','rU')
for line in f.readlines():
line=line.strip()
#print line
parts = line.split(" ")
(model,data,number) = [parts[0], parts[1], parts[2]]
all_data = [parts[0], parts[1], parts[2]]
我被困在这里..制作一本字典?, 我试过IF条件声明,但我没有得到任何地方
答案 0 :(得分:1)
那么,你想要做的是将var config = {
apiKey: "xxxxxxxxxxxxxxx",
authDomain: "yyyyyyyyy",
databaseURL: "https://yuyuyu.firebaseio.com/",
projectId: "demo1233xyz",
};
firebase.initializeApp(config);
var database = firebase.database();
database.ref("-UserTable/-LGDHSJSKSIUSN178").update({ verified: false });
的每个部分复制到它自己的输出文件,对吗?我认为,到目前为止,您的代码看起来非常精细。我打算复制它并添加一些我认为可以解决你问题的补充。
test.txt
我添加的第一件事是f = open('test.txt','rU')
filenum = 1
outfile = open('output' + str(filenum) + '.txt', 'w')
for line in f.readlines():
if (len(line) == 0): # if line is blank
outfile.close()
filenum += 1
outfile.open('output' + str(filenum) + '.txt', 'w')
else:
line=line.strip()
#print line
parts = line.split(" ")
model,data,number = parts[0], parts[1], parts[2]
outfile.write( "%s\t%s\t%s\n" % (model, data, number) )
outfile.close()
,它会计算您要打印的输出文件。然后,我打开一个文件开始写。
现在,我们遍历filenum
。对于每一行(这都在test.txt
代码块内),我们只使用您编写的代码 - 解释输入文件。然后,我们将它写入输出文件(我正在使用字符串格式,因为它比简单地将字符串与else
一起添加更简单。)如果我们到达一个空白行(如您的示例所示 - 空行标记不同部分之间的分隔),我们关闭当前文件,增加+
,然后打开一个新文件。
答案 1 :(得分:0)
这是一个解决方案(故意未优化以更清楚地公开逻辑):
lines = []
with open('test.txt','r') as fp:
for line in fp.readlines():
entry = line.rstrip().split()
if entry:
lines.append(entry)
file = 1
while len(lines):
unique = []
for item in lines:
add = True
for entry in unique:
if item[2] == entry[2]:
add = False
if add:
unique.append(item)
for line in unique:
lines.remove(line)
with open(str(file) + '.txt', 'w') as fp:
for item in unique:
fp.write("{} {} {}\n".format(item[0], item[1], item[2]))
file = file + 1