我正在启动一个模块,它打开一个文件,读取它,做一些东西,然后附加到它上面。但是,我试图先查看文件中的内容。这是该计划的开始:
def addSkill(company):
with open("companies.txt", "a+") as companies:
for line in companies:
print('ok')
print(line.rstrip('\n'))
companies.write(company + '\r\n')
companies.close()
两种打印功能都不起作用。文档中有文字。它根据要求附加到它。有什么建议吗?
答案 0 :(得分:2)
只需使用'r+'
打开,然后在记忆中保存所需的一切,然后它会自动写在最后。因为你的文件描述符将在最后。
在'a'
中打开文件会自动将文件描述符放在最后,因此,您无法看到之前写的内容。
e.g
def addSkill(company):
with open('companies.txt', 'r+') as fd:
list_of_companies = fd.readlines()
fd.write(company + '\n')
list_of_companies.append(company) # adding the last company to the full list.
print('\n'.join(list_of_companies)) # print each company with a '\n'.
奖金:您的close()
方法使用with
无效,python会为您执行此操作。
在任何情况下,当您不确定某项功能的选项时,请RTFM: open()
'r'
开放阅读(默认)'w'
开放写入,首先截断文件'x'
打开以进行独占创建,如果文件已存在则失败'a'
打开写入,如果文件存在则附加到文件的末尾'b'
二进制模式't'
文字模式(默认)'+'
打开磁盘文件进行更新(读写)'U'
通用换行模式(已弃用)