Python 从csv中删除重复项
好的,我有一个csv文件,我想删除重复项。我有一个工作代码示例,但我后来也尝试复制它,副本显示为空白,我相信,因为我用于删除重复项的代码并没有关闭csv文件,然后进行复制。如果我在删除重复项之前复制文件,它将非常有效。但我希望避免删除两个文件上的重复项 删除重复项的工作代码:Python 从csv中删除重复项,python,csv,Python,Csv,好的,我有一个csv文件,我想删除重复项。我有一个工作代码示例,但我后来也尝试复制它,副本显示为空白,我相信,因为我用于删除重复项的代码并没有关闭csv文件,然后进行复制。如果我在删除重复项之前复制文件,它将非常有效。但我希望避免删除两个文件上的重复项 删除重复项的工作代码: rows = csv.reader(open('scan.csv', 'r', newline='')) newrows = [] for row in rows: if row not in newrows:
rows = csv.reader(open('scan.csv', 'r', newline=''))
newrows = []
for row in rows:
if row not in newrows:
newrows.append(row)
writer = csv.writer(open('scan.csv', 'w', newline=''))
writer.writerows(newrows)
我相信python3的答案是使用with语句,而不是执行上述代码。但是我完全不知道如何将代码转换成with语句。以下是我正在尝试的(这可能是完全错误的)
如果我在整个基本问题上都错了,我这样做是为了复制
shutil.copyfile('scan.csv', 'iplist.csv')
在我的工作代码之前运行这个,效果很好。在工作代码之后运行此命令,将生成一个空csv文件
我还试图在不导入任何必须安装在像panda这样的windows上的东西的情况下构建整个系统
问题:使用With语句从csv中删除重复项
使用嵌套的和…
参考:内置函数
- 上下文管理器的典型用途包括关闭打开的文件
- 集合对象是不同的散列对象的无序集合
- 返回对象的哈希值
问题:使用With语句从csv中删除重复项 使用嵌套的
和…
参考:内置函数
- 上下文管理器的典型用途包括关闭打开的文件
- 集合对象是不同的散列对象的无序集合
- 返回对象的哈希值
或者@cricket_007:OP声明:没有熊猫。或者@cricket_007:OP声明:没有熊猫。
shutil.copyfile('scan.csv', 'iplist.csv')
_set = set()
with open('scan.csv', 'r', newline='') as in_file, \
open('iplist.csv', 'w', newline='') as out_file:
for line in in_file:
_hash = hash(line)
if _hash not in _set:
out_file.write(line)
_set.add(_hash)