Python的新手(应该注意)。放轻松我。
我写了以下内容来隔离文件的一个非常具体的部分
for line in open('120301.KAP'):
rec = line.strip()
if rec.startswith('PLY'):
print line
输出显示为
PLY/1,48.107478621032,-69.733975000000
PLY/2,48.163516399836,-70.032838888053
PLY/3,48.270000002883,-70.032838888053
PLY/4,48.270000002883,-69.712824977522
PLY/5,48.192379262383,-69.711801581207
PLY/6,48.191666671083,-69.532840015422
PLY/7,48.033358898628,-69.532840015422
PLY/8,48.033359033880,-69.733975000000
PLY/9,48.107478621032,-69.733975000000
理想情况下,我希望的是使用坐标创建CSV文件的输出。 (PLY / 1,PLY / 2等不需要留下)。这可行吗?如果没有,至少可以在print语句中生成一个与KAP文件同名的新文本文件吗?
答案 0 :(得分:1)
你可以使用csv模块
import csv
with open('120301.csv', 'w', newline='') as file:
writer = csv.writer(file)
for line in open('120301.KAP'):
rec = line.strip()
if rec.startswith('PLY'):
writer.writerow(rec.split(','))
以类似的方式csv.reader
可以轻松读取输入文件中的记录。
https://docs.python.org/3/library/csv.html?highlight=csv#module-contents
编辑#1
在python 2.x中,你应该以二进制模式打开文件:
import csv
with open('120301.csv', 'wb') as file:
writer = csv.writer(file)
for line in open('120301.KAP'):
rec = line.strip()
if rec.startswith('PLY'):
writer.writerow(rec.split(','))
答案 1 :(得分:1)
这完全可行!以下是一些指向某些文档的链接:https://docs.python.org/2/library/csv.html#用于写入/读取CSV。 您也可以使用常规文件读/写功能创建自己的CSV。
file = open('data', rw)
output = open('output.csv', w)
file.write('your infos') #add a comma to each string you output?
我认为这应该有用。
答案 2 :(得分:1)
您可以在代码的开头打开文件,然后在打印行之后添加一个write语句。像这样:
target = open(filename, 'w')
for line in open('120301.KAP'):
rec = line.strip()
if rec.startswith('PLY'):
print line
target.write(line)
target.write("\n") #writes a new line
答案 3 :(得分:0)
最简单的方法是将stdout重定向到文件:
for i in range(10):
print str(i) + "," + str(i*2)
将输出:
0,0
1,2
2,4
3,6
4,8
5,10
6,12
7,14
8,16
9,18
如果您将其作为python myprog.py > myout.txt
运行,结果将转到myout.txt