-2

我有一个文件,我想在其中复制文件的一些数据并将其粘贴到另一个文件中,例如假设一个文件包含以下数据:

AlphaforBravo007 102000000010170000000001 SusanaForCharlie 1000 end

从上面的文本中,我想分别复制1020000000101700000000011000粘贴到一个新文件中,每个文件都在新行上。

我真的很感激任何提示。

4

4 回答 4

3
with open('file1.txt') as f1,open('file2.txt','w') as f2:
 for line in f1: 
   x=line.split()   #now x is ['AlphaforBravo007', '102000000010170000000001', 'SusanaForCharlie', '1000', 'end']
   f2.write('\n'.join((x[1],x[3]))+'\n')

现在file2.txt包含:

102000000010170000000001
1000
于 2012-06-29T13:13:02.953 回答
1
for line in file1:
    a, b, c, d, e = line.split()
    file2.write(' '.join((b, d)) + '\n')

提示:

  • 学习如何读取文件(最好是逐行)
  • 基本文本处理 - 查找各种字符串方法 ( split)
  • 学习如何写入文件
  • 练习描述你的问题——一旦描述得好,你会发现它解决了一半……
于 2012-06-29T13:09:29.257 回答
1

如果您只想从空格分隔的文本文件中提取第二列和第四列,您可以使用

columns = operator.itemgetter(1, 3)
with open("input.txt") as input, open("output.txt", "w") as output:
    for line in input:
        output.write(" ".join(columns(line.split())) + "\n")
于 2012-06-29T13:11:27.487 回答
0

如果您想简单地复制数字并避免将文本从一个文件复制到另一个文件,您可以使用以下内容:

import re
with open('number.txt') as f1,open('number2.txt','w') as f2:
    for line in f1: 
        lst=line.split()
        for parts in lst:
            if not re.search('[A-Za-z]', parts): # Look for any alphabetical character in parts
                if lst[1] == parts:
                    f2.write(parts)
                else:
                    f2.write('\n' + parts)

这给出了:

102000000010170000000001
1000
于 2012-06-29T13:56:58.900 回答