遍历字典,分成数组并输出

时间:2019-04-11 09:25:21

标签: python loops dictionary

我刚接触Python,有人可以提供解决方案吗?

我有一个包含文件的3-4层目录。所有文件中的数据都采用以下格式:

data1:data2

data3:data4

data5:data6

...

我想遍历文件并读取所有行,将它们添加到数组中,并在逗号后仅输出数据。

这是我尝试过的:

import os

output_file = input("Enter output file: ")
folder_location = input("Enter directory: ")
while os.path.isdir(folder_location) is False:
    print("Directory not found, enter again: ")
    folder_location = input("Enter directory: ")

for subdir, dirs, files in os.os.walk(folder_location):
    for file in files:
        file = open()
        for line in file:
            fields = line.split(":")
            email = fields[0]
            password = fields[1]

输出应在新文件中如下所示:

data2

data4

data6

1 个答案:

答案 0 :(得分:0)

您可以这样做:

with open('result_file.txt', 'w') as result_file:

    for directory, _, filenames in os.walk(folder_location):

        for filename in filenames:
            full_path = os.path.join(directory, filename)

            with open(full_path, 'r') as source_file:
                for line in source_file:
                    stripped = line.rstrip()
                    email, password = stripped.split(':', maxsplit=1)

                    print(password, file=result_file)

maxsplit=1确保您的字符串最多分为2个部分。在密码还包含冒号的情况下,这一点很重要。如果没有maxsplit=1,则会为您提供3个组成部分-即,后两个将在密码中间分割。

如果您使用的是Python 2.7,则默认情况下不支持print()的{​​{1}}函数,但是可以通过将其放在程序顶部来使其可用:< / p>

file=

如果您坚持使用更旧的Python版本或不想使用from __future__ import print_function ,则可以执行以下操作:

print()