Grok学习python3.3文件

2024-10-01 13:24:22 发布

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

有人能帮我吗?以下是Grok Learning所说的:

你正努力写一封信给你的笔友,却发现你的狗一直在“帮助”和帮助你的信!你注意到每几行都以WOOF开头!包括你根本没写的东西!在

编写一个程序从文件中读入行信件.txt写一个新文件,固定.txt,其中只包含不以WOOF!开头的行!。在

例如,假设信件.txt公司名称:

我的菜园长得很好!
汪汪!我们玩接球吧!
西红柿和黄瓜差不多可以吃了。
你的花园怎么样?
汪汪!我最好追那只负鼠!

你的程序应该创建文件固定.txt包括:

我的菜园长得很好!
西红柿和黄瓜差不多可以吃了。
你的花园怎么样?

我目前的代码是(我将继续尝试,并编辑。会让你们知道的):

open("letter.txt").read()
line = letter.txt.split()
if line.startswith("WOOF!"):
  print("")
else:
  print(letter.txt)
letter.txt.close()

任何帮助都将不胜感激。提前谢谢!在


Tags: 文件程序txtgrokline公司黄瓜learning
3条回答
with open('letter.txt') as fin, open('fixed.txt', 'w') as fout:
  for line in fin:
    if not line.startswith('WOOF!'):
      fout.write(line)

好吧,你正在研究,所以我会给你解决办法。您仍然没有编程,但是猜测语法,所以您可能想查看official tutorial。在

首先我们要打开两个文件。默认设置是打开文件进行读取。对于源文件来说这是可以的,但是对于目标文件则不行,所以我们使用mode='w'来允许写入。在

然后我们遍历源文件中的每一行,检查该行是否以'WOOF!'开头,如果不是,我们将把该行写入目标文件。当读取源文件中的所有行时,循环将停止。在

循环之后,我们关闭两个文件。在

def main():
    source_file = open('letter.txt', encoding='UTF-8')
    target_file = open('fixed.txt', mode='w', encoding='UTF-8')

    for line in source_file:
        if not line.startswith('WOOF!'):
            target_file.write(line)

    source_file.close()
    target_file.close()

if __name__ == '__main__':
    main()

如果您忘记关闭文件,目标可能是空的。如果您不想自己处理结束语,那么让Python使用with语句来完成。在

^{pr2}$

文件将在with块保留时关闭。在

with open('letter.txt','r') as f:  
with open('fixed.txt','w') as i:

  for line in f:
    if 'WOOF!' not in line:
      print(line.strip(), file=i)

我的回答

相关问题 更多 >