不需要描述更改。 您只需要更改每行的第五个元素,不需要执行任何操作。 如果要更改原始文件,可以将其写入tempfile,然后运行shutil.move以用更新的temp替换原始文件: import string
exclude=string.punctuation
fromtempfileimportnamedtemporaryfile
来自shutil导入移动器
withopen(test1 ) ) as tsvfile,namedtemporaryfile ) dir='.',delete=False ) as t:
(TSVreader=CSV.reader(TSvfile,delimiter='t ' ) ) ) ) ) ) ) )
temp=CSV.Writer(t,delimiter='t ' ) ) ) ) ) ) ) )
for row in tsvreader:
row[4]=row[4].strip(exclude )
temp.writerow(row ) )。
move(t.name,' test1 ' ) )。
要创建新文件而不是更新原始文件,请打开新文件,并将其写入每个清理的行(withopen('test1 ) ) as tsvfile,open,' w ) ) as t:
(TSVreader=CSV.reader(TSvfile,delimiter='t ' ) ) ) ) ) ) ) )
temp=CSV.Writer(t,delimiter='t ' ) ) ) ) ) ) ) )
for row in tsvreader:
row[4]=row[4].strip(exclude )
temp.writerow(row ) )。
没有标点符号str.strip(exclude )就足够了。 如果要从任何地方删除,可以返回“. join ([ chforchinline [4] ifchnotinexclude ] )”,但如果要从任何地方删除,请选择str.translate:row [4]=
添加空间时:来自字符串导入标记
TBL=maketrans(exclude,' ' * len (exclude ) )
.
row[4]=row[4].translate(tbl )
最后,如果实际指向第四列,则必须是row[3]而不是row[4]