我正在尝试创建一个循环,它将格式化,空格和对齐第一个文本以匹配第二个文本。我从txt文件输入文本1,我希望它将文本2输出到txt文件中。语法应打印文本#2,第3列求和。
文字#1
$1120.47 $944.42
$72.29 $588.23
$371.21 $2183.84
文字#2
$ 1120.47 $ 944.42 $ 2064.89
$ 72.29 $ 588.23 $ 660.52
$ 371.21 $ 2183.84 $ 2555.05
这就是我到目前为止......你可以说这只是我第二周写的python。:)任何帮助都将不胜感激。
inputfilename= input('Enter sales file name: ')
outputfilename=input('Enter name for total sales file: ')
infile=open(inputfilename, "r")
outfile=open(outputfilename, "w")
salessequence=infile.readlines()
for sale in salessequence:
splitsale=sale.strip().split(" ")
firstsale=splitsale[0]
lastsale=splitsale[1]
dollarsign1=firstsale[0:1]
firstsale2=firstsale[1:]
lastsale2=lastsale[1:]
total=firstsale2 + lastsale2
print(total, file=outfile)
infile.close()
outfile.close()
print('All finished')
答案 0 :(得分:0)
尝试纠正三件事:
使用字符串方法rjust
(右对齐)来对齐列。它为字符串的开头添加了额外的空格。
阅读完成后,请务必关闭文件。或者使用with语法(参见下面的代码示例),因为它在退出with块后自动关闭文件。
使用file.write
将行写入文件
查看csv module& pandas library因为它们提供了高级数据和文件处理技术。
从文件中读取的示例代码&写入新文件:
inputfilename= input('Enter sales file name: ')
outputfilename=input('Enter name for total sales file: ')
with open(inputfilename, 'r') as i, open(outputfilename, 'w') as o:
for line in i:
fst_sale, lst_sale = line.split(' ')
fst_sale = float(fst_sale[1:])
lst_sale = float(lst_sale[1:])
tot_sale = fst_sale + lst_sale
new_line = ''.join(
['$' + str(x).rjust(10)
for x in [fst_sale, lst_sale, tot_sale]]
)
o.write(new_line + '\n')