我遇到列表和字符串格式化问题,并将更改写入新文件。我正在寻找的是:
如果已经定义了前面和后面的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")
我无法弄清楚如何将其写入新文件!救命啊!
答案 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()