如何修改现有的python文件

我正在尝试修改文件夹中的一组文件,方法是将 F 添加到第 4 行(如果我正确的话,这是 python 中的第 3 行)。使用下面的代码,代码只是不断运行而不进行修改,有人有什么想法吗?


import os


from glob import glob



list_of_files = glob('*.gjf')  # get list of all .gjf files


for file in list_of_files:


    # read file:

    with open(file, 'r+') as f:

      lines=f.readlines()

      for line in lines:

          lines.insert(3,'F')


森栏
浏览 210回答 2
2回答

守着星空守着你

for file in files:    # read your file's lines    with open(file, 'r') as f:        lines = f.readlines()    # add the value to insert in the list of lines at index 3    # don't forget line-break (\n)    lines.insert(3, 'F\n')    # join lines to create a string    text = ''.join(lines)    # don't forget to write the string back in your file    with open(file, 'w') as f:        f.write(text)

DIEA

您无法以这种方式使用 Python 编辑文件。您需要创建一个临时文件,然后通过重命名临时文件并删除临时文件在最后进行一些清理。核心逻辑是通读原始文件并F在第4行添加一个,否则只需添加该行。这可以通过这样的函数来完成:import osdef add_f_4th_line(filename):    with open(filename, 'r') as f_in:        with opne('temp', 'w') as f_out:            for line_number, line_contents in enumerate(f_in):                if line_number == 3:                    f_out.write(line_contents.replace('\n', 'F\n'))                else:                    f_out.write(line_contents)    os.rename('temp', filename)    os.remove('temp')enumerate将继续生成行号和行内容的迭代器,因此只需迭代每一行,您就可以找到带有line_number == 3. 然后,它将采用该行并替换\n为F\n. \n是一个换行符,所以我假设行尾就是这个字符。因此,在添加此函数后,您只需为通过调用获得的每个文件调用此函数glob。import osfrom glob import globlist_of_files = glob('*.gjf')  # get list of all .gjf filesfor file in list_of_files:    add_f_4th_line(file)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python