亲爱的所有开发者和朋友,
代码在这里: 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)
:
.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");
由于上述代码不合适,您能为我建议一个解决方案吗?
答案 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)