我有一个文件中的术语列表,我想要阅读,修改每个术语并将新术语输出到新文件。新术语应如下所示:将原始术语的前两个字符放在引号中,添加“=>”然后是引号中的原始术语和逗号。
这是我正在使用的代码:
def newFile(newItem):
original = line
first = line[0:2]
newItem = first+'=>'+original+','
return newItem
input = open('/Users/george/Desktop/input.txt', 'r')
output = open('/Users/george/Desktop/output.txt', 'w')
collector = ''
for line in input:
if len(line) != 0:
collector = newFile(input)
output.write(''.join(collector))
if len(line) == 0:
input.close()
output.close()
例如: 如果input.txt文件中的术语是这些: 第1学期 第2学期 第3学期 第4条
输出是这样的:
te=>term 1
,te=>term 2
,te=>term 3
,te=>term 4
,
如何在前两个字母和字词中添加''
?为什么第二个,第三个和第四个术语有,te
而不是te
喜欢它?
答案 0 :(得分:3)
您可以使用新变量:
,而不是使用collector
和newFile()
modified_line = "'%s'=>'%s'," % (line[:2], line.strip())
并在你的循环中试试这个:
...
if len(line) > 2:
output.write('%s\n' % (modified_line))
此外:
sys.argv
,标准输入/输出或配置文件;当然,如果你确定输入/输出名称然后使用它们line[0:2]
中,您可以省略0并使用行[:2]
try:
- 打开文件 - 读取文件等。finally:
关闭文件len(line) == 0
,for
是否已经循环执行此操作,并且您将收到CRLF为空行的行,但输入文件的结尾是for
循环时端