繁体   English   中英

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

[英]List and String formatting difficulties: importing a txt file, adding strings and writing it to a new file

我在使用列表和字符串格式设置时遇到麻烦,并将更改写入新文件。 我正在寻找的是:

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

我只是不知道如何将其写入新文件! 救命!

您可以这样解决:

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

您的可变lineslist类型,没有方法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)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM