我刚接触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
答案 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()