如何使用python3.6.4在两个文本文件中提取word文本和输出不同的行

2024-10-01 02:32:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从不同的行中提取单词(在9个空格后见示例),并希望使用python3.6.4输出两个文本文件,我的文本文件名包含的示例

personal:01
personal:apple
colorsid:fruitgreen
personal:01
personal:banana
colorsid:fruityellow
personal:01
personal:stawberry
colorsid:fruitred
personal:01
personal:mango
colorsid:fruitdarkgreen

我想提取两个文本文件,如下所示(输出):- 因此,textfile1.txt包含:

apple
banana
stawberry
mango

因此,textfile2.txt包含:

fruitgreen
fruityellow
fruitred
fruitdarkgreen

(所以在这里)personal:01 is 已忽略) 我试着到处搜索一个解决方案,但是没有找到,我们如何在python3.6.4中准备一个脚本,它可以像这样分开,我正在用一个巨大的文本文件列表来测试它


Tags: txt示例apple单词personalbanana空格文本文件
2条回答

您可以逐行读取文件,并根据:之后的内容将其添加到正确的文件中:

with open('data.txt') as in_file:
    with open('file1.txt', 'w') as out1, open('file2.txt', 'w') as out2:
        for line in in_file:
            _, value = line.strip().split(':')
            if value != '01':
                if value.startswith('fruit'):
                    out2.write(value + '\n')
                else:
                    out1.write(value + '\n')

    print(open('file1.txt').read())
    print(open('file2.txt').read())

输出:

apple
banana
stawberry
mango

fruitgreen
fruityellow
fruitred
fruitdarkgreen

这是使用pandas库的一种方法。只要用pd.read_csv('input_file.csv')替换pd.read_csv(mystr)

import pandas as pd
from io import StringIO

mystr = StringIO('''personal:01
personal:apple
colorsid:fruitgreen
personal:01
personal:banana
colorsid:fruityellow
personal:01
personal:stawberry
colorsid:fruitred
personal:01
personal:mango
colorsid:fruitdarkgreen''')

df = pd.read_csv(mystr, header=None, names=['Col1', 'Col2'], delimiter=':')

#         Col1            Col2
# 0   personal              01
# 1   personal           apple
# 2   colorsid      fruitgreen
...
# 9   personal              01
# 10  personal           mango
# 11  colorsid  fruitdarkgreen

x = df.iloc[df.index[1::3], 1]  # ['apple', 'banana', 'stawberry', 'mango']
y = df.iloc[df.index[2::3], 1]  # ['fruitgreen', 'fruityellow', 'fruitred', 'fruitdarkgreen']

x.to_csv('file1.csv', header=False, index=False)
y.to_csv('file2.csv', header=False, index=False)

相关问题 更多 >