我很难尝试将额外数据附加到文件中。 重复索引号2次并添加22和23,留下电话号码 在现有的20号线上。 示例
原创
MYFILE:
1,20,323.454.1234,
2,20,212.333.3333,
3,20,212.222.4444,
4,20,850.234.3881,
5,20,850.111.3881,
6,20,510-222-5241,
7,20,510-343-5241,
8,20,678-456-3555,
9,20,678-123-3555,
10,20,123-123-4878,
新文件假设是这样的 mynewfile:
1,20,323.454.1234,
1,22,323.454.1234,
1,23,323.454.1234,
2,20,212.333.3333,
2,22,212.333.3333,
2,23,212.333.3333,
3,20,212.222.4444,
3,22,212.222.4444,
3,23,212.222.4444,
4,20,850.234.3881,
4,22,850.234.3881,
4,23,850.234.3881,
5,20,850.111.3881,
5,22,850.111.3881,
5,23,850.111.3881,
6,20,510-222-5241,
6,22,510-222-5241,
6,23,510-222-5241,
7,20,510-343-5241,
7,22,510-343-5241,
7,23,510-343-5241,
8,20,678-456-3555,
8,22,678-456-3555,
8,23,678-456-3555,
9,20,678-123-3555,
9,22,678-123-3555,
9,23,678-123-3555,
10,20,123-123-4878,
10,22,123-123-4878,
10,20,123-123-4878,
我的代码:
#!/usr/bin/python
import re
myfile = open('myfile', 'r+')
lines = myfile.readlines()
sentences = []
for line in lines:
if line:
sentences.insert(line + '22')
for line in lines:
if line:
sentences.insert(line + '23')
myfile.close()
outputfile = open('mynewfile', 'w+')
if len(sentences) > 0:
for sentence in sentences:
outputfile.write(sentence)
outputfile.close()
任何帮助将不胜感激。
答案 0 :(得分:2)
只是一些提示,所以你可以自己提出解决方案。 您可以逐行读取输入文件。使用类似的东西:
with open("myfile", "rt") as f, open ("mynewfile", "wt") as g:
for line in f:
# split line and generate your two new lines
print >> g, line
print >> g, ... # new line 1
print >> g, ... # new line 2
您需要将每一行分成几部分,然后使用split
。
答案 1 :(得分:0)
一种方式:
import fileinput
with fileinput.input() as f:
for line in f:
print(line, end='')
fields = line.split(r',', 2)
for n in [22, 23]:
fields[1] = n
print(','.join(map(str, fields)), end='')
它产生:
1,20,323.454.1234,
1,22,323.454.1234,
1,23,323.454.1234,
2,20,212.333.3333,
2,22,212.333.3333,
2,23,212.333.3333,
3,20,212.222.4444,
3,22,212.222.4444,
3,23,212.222.4444,
4,20,850.234.3881,
4,22,850.234.3881,
4,23,850.234.3881,
5,20,850.111.3881,
5,22,850.111.3881,
5,23,850.111.3881,
6,20,510-222-5241,
6,22,510-222-5241,
6,23,510-222-5241,
7,20,510-343-5241,
7,22,510-343-5241,
7,23,510-343-5241,
8,20,678-456-3555,
8,22,678-456-3555,
8,23,678-456-3555,
9,20,678-123-3555,
9,22,678-123-3555,
9,23,678-123-3555,
10,20,123-123-4878,
10,22,123-123-4878,
10,23,123-123-4878,
答案 2 :(得分:0)
for x in open('myfile.txt'):
x = x.rstrip()
L = x.split(',')
print(x)
print(L[0], 22, L[2], "\n", sep=',', end='')
print(L[0], 23, L[2], "\n", sep=',', end='')