gpt4 book ai didi

python - 如何从 .csv 文件中删除行

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:49 25 4
gpt4 key购买 nike

我需要从我的 .csv 文件中删除行,以便每天比较文件的变化,最好使用 python。我需要删除前 3 行以及以“未分类”开头的行。我写了一个 excel 宏来做这件事,但我有近 1000 个文件需要修改,相当简单的脚本需要 1 小时才能完成(主要是由于保存每个文件)所以我正在寻找更高效的东西或至少不妨碍我在脚本运行时使用 excel。

这基本上是我的文件,

Date MM/DD/YYYY,,,,,,,
Start Time XX:XX,,,,,,,
Completed YY:YY,,,,,,,
A,b,c,d,e,f
g,h,i,j,k,l
1,2,3,4,5,6
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,
Not Classified,,,,,,,
,,,,,,,,,,,

我的输出应该看起来像

A,b,c,d,e,f
g,h,i,j,k,l
1,2,3,4,5,6
,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,,,

提前致谢

最佳答案

这在 python 中应该不是一件困难的事情,并且应该比您的宏更快 [并且可能更简单 ;)]。请参阅以下内容:我们删除前 3 行并删除所有“非分类”行,然后将其写回新文件。

FILENAME = './the.csv'

def your_operation(path):

with open(path) as f:
lines = f.readlines()

if len(lines) > 3:
lines = lines[3:]
lines = list(filter(lambda x: not x.startswith('Not Classified'), lines))

with open(f'{path.replace(".csv", "")}-modified.csv', 'w') as f:
f.writelines(lines)

your_operation(FILENAME)

注意这是使用 f-strings在 3.6 及更高版本中可用。您可以将该行替换为

new_path = path.replace('.csv', '') + '-modified.csv'
with open(new_path, 'w') as f:
...

如果您使用的是旧版本。您可以扩展它以对目录中的所有文件执行此操作 - 这似乎是您想要的目标。如果您不想要旧内容并且足够信任我,您也可以简单地将它写回同一个文件。但是,我不确定 Excel 如何处理其他应用程序的写入 - 但写入新文件肯定会让您同时使用 excel。

import glob

root = "path/to/dir/**.csv" # recursive search in dir

for path in glob.glob(root):
your_operation(path)

关于python - 如何从 .csv 文件中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com