4 回答
TA贡献1840条经验 获得超5个赞
这个解决方案效果很好,您对此有何看法?
filepath = input("original file :")
filepath2 = input("result file : ")
with open(filepath, "r") as f, open(filepath2, "w") as f2:
for line in f:
f2.write(line if not 'CC' in line else "//" + line)
TA贡献1836条经验 获得超13个赞
这似乎是您的输入文件中的字符问题。也许.strip()反而.rstrip()会效果更好。.rstrip()仅删除字符串右侧的空格,同时.strip()删除左侧和右侧的空格。像这样的东西应该有效:
inputFile = open('data.txt', 'r')
outputFile = open('outputFile.txt', 'w')
for line in inputFile:
outputLine = line.strip() + '\n'
if 'CC' in line:
outputLine = '//' + outputLine
outputFile.write(outputLine)
inputFile.close()
outputFile.close()
TA贡献1796条经验 获得超4个赞
这是一个解决方案:
p="name_of_original_file.txt"
file=open(p,"r")
s=file.read()
file.close()
new_s=""
for line in s.splitlines():
if 'CC' not in line:
new_s+=line+"\n"
if 'CC' in line:
new_s+='// '+line+"\n"
print (line)
p="name_of_new_file.txt"
file=open(p,"w")
file.write(new_s)
file.close()
TA贡献1858条经验 获得超8个赞
额外的新行是由于文件行中已存在“\n”字符,您可以通过更改为来防止这种情况
print(line, end='')
我不知道为什么你更喜欢文件输入模块来读取文件,因为我发现默认方法 open 非常令人满意,因为你可以读写文本文件,二进制文件等......至于你的问题:
with open(file_name, 'w') as file: file.write(data)
添加回答
举报