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

时间:2017-09-25 14:21:38

标签: python string list formatting file-writing

我遇到列表和字符串格式化问题,并将更改写入新文件。我正在寻找的是:

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

    如果已经定义了前面和后面的STRINGS,并且所有内容都写入了新文件!

    我的最终目标是,当我导入一个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 个答案:

答案 0 :(得分:2)

你可以这样解决:

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')

答案 1 :(得分:1)

您的变量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)

答案 2 :(得分:1)

使用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

答案 3 :(得分:0)

您最初调用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()