【发布时间】:2015-05-31 20:55:35
【问题描述】:
是否可以使用 Python 修改 位于同一文件夹中/目录的所有 csv 文件(总共 240 个)? csv 文件包含测试结果,这些都列在第一列而不是几列中。通过修改,我想将所有 csv 文件的逗号 (,) 替换为分号 (;) 以获得下面的示例 B):
A) 一个 csv 文件的内容示例(之前通过 Python 脚本修改):
Column A: Column B: Column C: Column D: Column E:
1, 65, 165, 484, 15,
0, 46, 49, 4, 66,
等等
B) 一个 csv 文件的内容示例(在通过 Python 脚本修改后):
Column A: Column B: Column C: Column D: Column E:
1 65 165 484 15
0 46 49 4 66
等等
我还没有找到任何例子。你已经实现了类似的东西吗?还是有比 Python 更好的解决方案?我知道你可以在 Excel 中完成,但我不想重复 240 次。
更新:我的解决方案
我用下面的代码做到了,它可以工作。但是在每一行之间我有一个空行。我不明白为什么??
with open('_' + csv_name, mode="w") as outfile:
writer = csv.writer(outfile, delimiter=';')
with open(csv_name, mode="rU") as infile:
print(csv_name)
reader = csv.reader(infile, dialect="excel")
for row in reader:
print(row)
writer.writerow(row)
每个与 *.py 文件位于同一文件夹的 csv 文件都会被修改。
【问题讨论】:
-
是的,这是可能的。试一试,让我们知道你在哪里卡住了。 Python CSV
-
A)和B)两个示例都不代表 csv 文件内容。 csv 文件表示(具有逗号分隔值的文件)。在您的情况下,Column A: Column B: ...etc 本身没有任何逗号。在 B) 中,如果您将两个示例的第二行从 ,(comma) 更改为 ; (分号),那么它本身就不是一个 csv 文件。 -
csv文件格式不只一种,例如制表符和分号分隔的csv文件
-
由于没有标准,很难争论某些东西是否是 csv。我希望大多数进口商接受 case
A)as csv,第一行有一个字段。 -
正如@Jkdc 指出的那样,python 内置了一个不错的 csv 库,您应该真正尝试使用它。 2 个答案将解决您的问题如果您的 CSV 数据没有任何编码数据(例如...一行包含“A、B、C”列,其中的逗号旨在成为该列的一部分,而不是定界符)。另请注意,您的示例令人困惑;你说你想用分号替换逗号,但你的帖子显示它被一个标签替换)