如何使用python删除.csv文件中变量声明的单词?

时间:2016-04-14 07:26:02

标签: python regex string csv

亲爱的所有开发者和朋友,

代码在这里: http://argo1chem.blogspot.gr/

我创建了以下文件D13,93.49902,103.49902,113.49902,123.49902,133.49902 D13,143.49902,153.49902,163.49902,173.49902,183.49902 D13,193.49902,203.49902,213.49902,223.49902,233.49902 ,其中描述了其中一个部分:

93.49902,103.49902,113.49902,123.49902,133.49902  
143.49902,153.49902,163.49902,173.49902,183.49902  
193.49902,203.49902,213.49902,223.49902,233.49902

我想删除D13,单词并将其转换为以下内容:

var1

最初,用户输入存储在print "Enter %d dihedral angle:" %i i = i+1 var1 = raw_input(' ') print(var1)

中的D13字作为输入
.csv

因此,我想使用var1变量从S.replace(old, new[, count]) -> string 文件中删除单词D13。

到目前为止,我已经看到一般情况下使用

S.replace(D23, new[, count]) -> string

在我们的案例中,旧的地方应该是D13。

但是,由于我有很多变量,每次更改名称时,我都想完全自动,而不是使用所选名称修改脚本。

例如对于D23我应该使用,这不是我需要的:

S.replace((var1), new[, count]) -> string    var1 is D13   
S.replace((var2), new[, count]) -> string    var2 is D26

我希望不要输入一个单词,而是替换为变量,例如我的意思是:

var url = document.getElementById("icImg").getAttribute("src");

由于上述代码不合适,您能为我建议一个解决方案吗?

1 个答案:

答案 0 :(得分:0)

假设您只想删除初始字段,无论它是什么,str.split就足够了:

for line in inputfile:
    outputfile.write(line.split(',', 1)[1])  # split(..., 1) only splits once!

如果您需要控制第一个字段的值,您只需获取分割的两个值

for line in inputfile:
    field, end_of_line.split(',', 1) # head <= D13 (or whatever)
    # your processing
    ....

但是如果你想进行一些清理(删除不需要的空格,重新排序字段等),你真的应该使用csv模块:

import csv
...
rd = csv.reader(inputfile)
wr = csv.writer(outputfile)
for row in rd:                       # split each line into a list of fields
    row = [ x.strip() for x in row ] # remove spaces around  fields
    outrow = row[1:]                 # of whatever builds the output row
    wr.writerow(outrow)