Pat*_*ene 5 python csv scripting
我需要编辑几个csv文件.实际上,大多数文件都是正常的,它只是需要更改的最后一个(第41个)列.对于该列中特定字符串的每次出现,我需要将其替换为不同的字符串; 具体而言,每次出现'SD'都需要用'S'代替.我试图用Python完成这个,但我想我需要编写csv文件,我不太清楚如何做到这一点:
import os
import csv
path=os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
if filename.endswith('.csv'):
r=csv.reader(open(filename))
for row in r:
if row[40] == "S-D":
row[40] = "S"
Run Code Online (Sandbox Code Playgroud)
有帮助吗?此外,如果有人用shell脚本快速,优雅地做到这一点,那对我来说也许会非常有帮助.
请务必阅读有关CSV 文件读取和写入的 Python 文档。那里有很多值得学习的地方。这是一个基于您的问题的基本示例。只修改最后一列的数据,写出修改后的文件,文件名带有“_edited”。
import os
import csv
path=os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
if filename.endswith('.csv'):
r=csv.reader(open(filename))
new_data = []
for row in r:
row[-1] = row[-1].replace("S-D", "S")
new_data.append(row)
newfilename = "".join(filename.split(".csv")) + "_edited.csv"
with open(newfilename, "w") as f:
writer = csv.writer(f)
writer.writerows(new_data)
Run Code Online (Sandbox Code Playgroud)