是否可以使用Python修改位于在同一文件夹 /目录中的所有csv文件(总共240个)? csv文件包含测试结果,这些文件列在第一列而不是几列中。通过修改,我想用下面的示例B替换所有csv文件的分号(;)的逗号(,):
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文件。
答案 0 :(得分:4)
首先,您需要找到目录中所有CSV文件的文件:
import os
for file in os.listdir("/mydir"):
if file.endswith(".txt"):
#here is where we will process each file
现在要处理打开它所需的每个文件:
csv_file = open(file, mode="r")
现在我们可以读入数据:
data = file.readlines()
再次关闭文件:
csv_file.close()
假设您要在适当的位置编辑它们(没有文件名更改) 在写入模式下重新打开同一个文件:
csv_file.open(file, mode="w")
现在我们处理数据:
for line in data:
file.write(line.replace(",",";"))
现在我们再次关闭文件:
csv_file.close()
并且因为这里面都是'for file in ...'循环,所以对于目录中以'.csv'结尾的每个文件都会重复这个。
答案 1 :(得分:0)
sed -i 's/,/;/g' *.csv