Python在lin处添加文本

2024-05-23 18:50:15 发布

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

我有一个包含以下行的文件:

//hva_SaastonJakaumanMuutos/printData/reallocationAssignment/changeUser/firstName>

我想在最后加上“约翰”。在

我写了下面的代码,但由于某些原因它不起作用

^{pr2}$

你知道我哪里做错了吗?在


Tags: 文件代码原因firstnamepr2printdatachangeuserhva
2条回答

你没有给出太多的信息,所以即使我也不会使用下面的代码(因为我确信有更好的方法),它可能会帮助你解决问题。在

import os.path

def add_text_to_file(self, filename, row_title, input_text):
    # filename should have the .txt extension in it
    filepath = os.path.join("check_files", filename)
    with open(filepath, "r") as f:
        content = f.readlines()

    for j in len(content):
        if row_title in content[j]:
            content[j] = content[j].strip() + input_text + "\n"
            break

    with open(filepath, "w") as f:
        f.writelines(content)

如果在开头找到您要搜索的文本,str.find可能返回{}。毕竟,它返回匹配开始时的索引。在

所以你的情况应该是:

if fileList[j].find(rowTitle) >= 0 :

编辑:

上面的修正可以节省时间,但如果你用正确的方式,Python式的方式来处理,那就更好了。在

  • 如果要在文本中查找子字符串,可以使用foo in bar比较。如果foo可以在bar中找到,则为True,否则为{}。在
  • 在Python中很少需要计数器。enumerate内置是您的朋友。在
  • 您可以将迭代和编写结合起来,消除不必要的步骤。在
  • strip或{a1}在您的情况下比替换要好。在
  • 对于python2.6+,在处理文件时最好使用with语句。它将以正确的方式处理关闭文件。对于python2.5,您需要from __future__ import with_statement
  • 请参阅PEP8以了解常见的首选命名约定。在

以下是一个清理版本:

^{pr2}$

相关问题 更多 >