在python中删除文件.OSError: [WinError 123]文件名、目录名或卷标语法错误



试图从我的python文件中删除一行,它给我这个错误。我有一个学生数据库,我想删除一个学生/行,有相应的学生id。例如,line = 'SanVin22tSanjitVinsmoketWellington'。Id为输入的Id。

def DelStudent(self, data):

self = id
with open(data, "r+") as datafile:
for line in datafile:
datum = line.split()
if datum[0] == id:
os.remove(line)       
pass

错误是:

os.remove(line)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'SanVin22tSanjitVinsmoketsanji@gmail.comtWellingtont'

我试过用datafile.write(line)代替os.remove(line),就像我在网上看到的所有教程一样,但最终会删除数据库中的每个列表。

如果想法是删除具有给定id的行,那么收集所有不匹配的行(即我们想要保留的行),然后将它们写回原始文件。

def DelStudent(self, data):
new_lines = []
with open(data, "r+") as datafile:
for line in datafile:
datum = line.split()
if datum[0] != id:
new_lines.append(line)
with open(data, "w") as datafile:
for line in new_lines:
datafile.write(line)

最新更新