从文本文件复制并将编号的行写入另一个文件

时间:2017-11-20 10:09:19

标签: python

我的问题很简单。

我的任务是阅读一个名为cities.txt的文本文件,其中包含国家/地区和大写字母 (例如前三行是:

苏格兰阿伯丁

澳大利亚阿德莱德

阿尔及利亚阿尔及尔

并写入另一个名为out.txt的文本文件,这些内容编号为 (例如

1:苏格兰阿伯丁

2:澳大利亚阿德莱德

3:阿尔及利亚阿尔及尔

到目前为止我的代码是:

try:
    with open('cities.txt', 'r') as f:
        with open('out.txt', 'w') as m:
            lines = f.read()
            #missing code
except:
    print('Error')
else:
    with open('out.txt', 'r') as m:
        content = m.read()
    print(content)

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

你可以这样做:

with open('cities.txt') as infile, open('out.txt', 'w') as outfile:
    in_lines = infile.readlines()
    for i, line in enumerate(in_lines, start=1):
        outfile.write('{}: {}'.format(i, line))

写入out.txt的文字:

1: Aberdeen, Scotland
2: Adelaide, Australia
3: Algiers, Algeria

答案 1 :(得分:1)

您只需循环输入文件中的每一行并写入输出 - 并使用计数器来跟踪行号:

with open('cities.txt', 'r') as f:
    with open('out.txt', 'w') as m:
        l = 1
        for line in f:
            m.write("{}: {}".format(l, line))
            l += 1

答案 2 :(得分:1)

您可以通过在一行打开文件来保持简短

with open(r'bla.txt', 'r') as fd, open(r'bla2.txt', 'w') as fd2:
    count = 1
    for line in fd.readlines():
        fd2.write(str(count) + ': ' + line)
        count += 1