假设我有一个包含1,000个名字的.txt文档。 该文件如下所示:
乔恩 简 乔 插口 杰里米
等等。
现在,让我们说,我想追加“跛脚”。每个名字。 所以,我希望列表看起来像这样:
乔恩很蹩脚。 简是瘸子。 乔很蹩脚。 杰克很蹩脚。 杰里米很蹩脚。等等。
如何从命令行使用python执行此操作?
答案 0 :(得分:3)
请参阅http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files。
简而言之:
f = open('my_names_file.txt')
data = f.read()
f.close()
output = ""
for name in data.split(' '): # This assumes each name is separated
output += name + " is lame. " # by a space and no name contains a space
print output
将输出写回文件同样容易。它在文档中得到了很好的解释。
答案 1 :(得分:1)
print ' '.join(i + ' is lame.' for i in open(fname).read().split())
答案 2 :(得分:0)
这不是特定于python的,但你明白了......
In a loop parsing each token (name):
1. Get the name into a string
2. Append "is lame" or whatever else to the string
3. Append that string onto a buffer
循环结束后,用新缓冲区替换文档。
答案 3 :(得分:0)
>>> s="Jon Jane Joe Jack Jeremy "
>>> s.replace(" ", " is lame. ")
'Jon is lame. Jane is lame. Joe is lame. Jack is lame. Jeremy is lame. '
答案 4 :(得分:0)
请在下面找到一个非常基本的样本:
outputLines = []
with open('c:\\file.txt', 'r') as f:
for line in f:
if line.strip():
outputLines.append(' is lame. '.join(line.strip().split()))
with open('c:\\file.txt', 'w') as f:
for line in outputLines:
f.write(line+'\n')