Python保存到文件

2024-05-17 17:08:57 发布

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

我想用一个名为Failed.py的python程序将字符串保存到一个文件中

以下是我目前掌握的情况:

myFile = open('today','r')

ips = {}

for line in myFile:
    parts = line.split(' ')
    if parts[1] == 'Failure':
        if parts[0] in ips:
            ips[pars[0]] += 1
        else:
            ips[parts[0]] = 0

for ip in [k for k, v in ips.iteritems() if v >=5]:
    #write to file called Failed.py

Tags: 文件字符串inpy程序fortodayif
3条回答
myFile = open('today','r')

ips = {}

for line in myFile:
    parts = line.split()
    if parts[1] == 'Failure':
        ips.setdefault(parts[0], 0)
        ips[parts[0]] += 1

of = open('failed.py', 'w')
for ip in [k for k, v in ips.iteritems() if v >=5]:
    of.write(k+'\n')

检查setdefault,它使代码更清晰一些。然后使用file对象的write方法转储数据。

您需要使用open()再次打开该文件,但这次通过'w'来指示您要写入该文件。我还建议您使用with来确保在完成对该文件的写入后将其关闭。

with open('Failed.txt', 'w') as f:
    for ip in [k for k, v in ips.iteritems() if v >=5]:
        f.write(ip)

当然,您可能希望在输出中包含换行符或其他格式,但基本内容如上所述。

关闭文件的相同问题也适用于读取代码。应该是这样的:

ips = {}
with open('today','r') as myFile:
    for line in myFile:
        parts = line.split(' ')
        if parts[1] == 'Failure':
            if parts[0] in ips:
                ips[pars[0]] += 1
            else:
                ips[parts[0]] = 0
file = open('Failed.py', 'w')
file.write('whatever')
file.close()

下面是一个更为pythonic的版本,它会自动关闭文件,即使包装块中有异常:

with open('Failed.py', 'w') as file:
    file.write('whatever')

相关问题 更多 >