代码之家  ›  专栏  ›  技术社区  ›  A. Blackmagic

列表和字符串格式的困难:导入txt文件、添加字符串并将其写入新文件

  •  1
  • A. Blackmagic  · 技术社区  · 8 年前

    1. 之前的字符串
    2. 导入的txt文件内容(字符串值列表)
    3. 之后的字符串

    其中,前面和后面的字符串都已定义,并且所有内容都将写入一个新文件!

    我的最终目标是,当我导入一个txt文件(包含一个列表)并运行代码时,它将被打印到一个新文件中,并在导入的txt文件的列表之前和之后添加预定义的字符串。

    text_file = open(r"text_file path", "r")
    lines = text_file.read().split(',')
    lines.insert(0, "String Values Before")
    lines.insert("String Values After")
    text_file.close()
    lines.write("new_file.txt", "w+")
    

    现在的问题是,我正在插入到列表中,而我希望字符串与列表分开!

    我已经能够使用以下代码在控制台中生成我想要的编写文件:

    FIRMNAME = "apple"
    FILETYPE = "apple"
    REPLYFILENAME = "apple"
    SECMASTER = "apple"
    PROGRAMNAME = "apple"
    
    text_file = open(r"textfile path", "r+")
    lines = text_file.readlines().split('\n')
    
    print(("START-OF-FILE \nFIRMNAME= ") + FIRMNAME) 
    
    print(("FILETYPE= ") + FILETYPE) 
    
    print(("REPLYFILENAME= ") + REPLYFILENAME) 
    
    print(("SECMASTER= ") + SECMASTER) 
    
    print(("PROGRAMNAME= ") + PROGRAMNAME) 
    
    
    print("START-OF-FIELDS")
    
    print("END-OF-FIELDS")
    
    print("START-OF-DATA")
    pprint.pprint(lines) 
    print("END-OF-DATA")
    print("END-OF-FILE")
    

    我就是不知道怎么把它写进一个新文件!帮助

    4 回复  |  直到 8 年前
        1
  •  2
  •   Michael Gecht    8 年前

    你可以这样解决:

    newFile = 'your_new_file.txt'
    oldFile = 'your_old_file.txt'
    
    # Open the new text file
    with open(newFile, 'w') as new_file:
        # Open the old text file
        with open(oldFile, 'r') as old_file:
            # Write the line before the old content
            new_file.write('Line before old content\n')
    
            # Write old content
            for line in old_file.readlines():
                new_file.write(line)
    
            # Write line after old content
            new_file.write('Line after old content')
    
        2
  •  1
  •   Richard Neumann    8 年前

    您的变量 lines list ,它没有方法 write .
    此外 insert

    您需要读取文件,相应地使用前缀和后缀值连接它,然后将其写入适当的输出文件:

    with open("text_file_path", "r") as input_file:
        text = input_file.read()
    
    text = '\n'.join(("String Values Before", text, "String Values After"))
    
    with open("new_file.txt", "w+") as output_file:
        output_file.write(text)
    
        3
  •  1
  •   Neo    8 年前

    pformat .
    pprint

    before_values = ["a", "b", "c"]
    data = ["1", "2", "3"]
    after_values = ["d", "e", "f"]
    with open("outfile.txt", "w) as outfile:
        outfile.write("\n".join(before_values)) # Write before values
        outfile.write(pprint.pformat(data))     # Write data list
        outfile.write("\n".join(after_values))  # Write after values
    
        4
  •  0
  •   Ajax1234    8 年前

    insert 方法,因为您必须提供索引;但是,您可以添加、加入结果列表并写入文件:

    text_file = open(r"text_file path", "r")
    lines = text_file.read().split(',')
    lines.insert(0, "String Values Before")
    lines.append("String Values After")
    text_file.close()
    new_file = open('text_file_path.txt', 'w')
    new_file.write(','.join(lines)+'\n')
    new_file.close()