【问题标题】:Replace ':' in CSV with ','将 CSV 中的 ':' 替换为 ','
【发布时间】:2020-03-05 13:38:16
【问题描述】:

大家好,我想编写一个小程序,我有这个代码

inputfile = csv.reader(open('data.csv','r'))
for row in inputfile:

但现在我遇到了问题,我的 CSV 中有逗号和 :,我想用逗号替换 ':',因为我想用 row[3] 函数读取它。还是可以不用更换? 谢谢你们!

inputfile = csv.reader(open('data.csv','r'))
for row in inputfile:
    xyc = row[0]
    afs = row[1]
    yxcva = row[2]
    asdfe = row[3]

我已经试过了:

data = ""

with `open("input.csv")` as file:
     data = file.read().replace(":", ",")

with `open("data.csv")` as file:
     file.write(data)

【问题讨论】:

  • 请提供样本输入和预期结果。目前尚不清楚您是要编辑原始文件,还是只需要一种方法将每一行解析为四个字段。
  • 你真的想重写文件,还是只是正确地读取它?无论哪种方式,请使用readerdelimiter 参数。
  • 或者你的意思是 CSV 文件使用 both ,: 作为分隔符?在同一行,还是在不同的行?该文件是否包含本身可能包含,: 的字符串数据?
  • 这能回答你的问题吗? Python CSV change separator
  • 如果它可以同时使用 (, 和 :) 作为分隔符,那么在 data.csv abs,jkel,dheu:kljsk:3234:2324 另一个文件中的示例输出 abs,jkel 中的示例输入也可以,dheu,kljsk,3234,2324

标签: python csv replace


【解决方案1】:

如果您使用这样的 for 循环并且想要拆分行,则可以执行类似的操作

elements = row.split(',')
xyc = elements[0]
abc = elements[1]
...

split command 中的参数告诉方法使用哪个 char 进行拆分 !

【讨论】:

  • 我也可以让它用 , 和 : 分割吗?
  • 我认为在这种情况下你可以使用row.replace(':',',').split(',')
  • AttributeError: 'list' 对象没有属性 'replace
  • 你需要在split之前使用replace,因为split会创建一个列表,而replace会返回一个String。这对我有用a = "This,is:a:String,or,something" data = a.replace(':', ',').split(',') print(data)
  • 这是因为你使用了csv.reader!尝试以下操作: ´´´ input = open('data.csv','r') for row in input: data = row.replace(':', ',').split(',') print(data ) ´´´
猜你喜欢
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 2016-11-07
相关资源
最近更新 更多