Python 2.7 如何访问for循环和拆分字符串中的每一行
我想读取文本文件并写入csv: 我使用以下代码Python 2.7 如何访问for循环和拆分字符串中的每一行,python-2.7,machine-learning,Python 2.7,Machine Learning,我想读取文本文件并写入csv: 我使用以下代码 import glob import os import re list_of_files=glob.glob('D:\Mekala_Backupdata\PythonCodes/textFile.txt') for fileName in list_of_files: fin=open(fileName,"r") data_list=fin.readlines() fin.close() targetSubStri
import glob
import os
import re
list_of_files=glob.glob('D:\Mekala_Backupdata\PythonCodes/textFile.txt')
for fileName in list_of_files:
fin=open(fileName,"r")
data_list=fin.readlines()
fin.close()
targetSubString='-------'
indices=[idx for idx,s in enumerate(data_list) if targetSubString in s]
reqData=data_list[indices[0]+1:indices[1]]
fout=open("stripD.csv","w")
fout.writelines(reqData)
fout.flush()
fout.close
我想拆分每行中的字符串,并将第一列保存到para_列表中,将第3列保存到end_值中
在end_值中,如果是数字,则保留第一个字符串;如果是文本,则保留逻辑运算符,或保留整个siring。
我的期望输出:
para_list:
parq
10Lqr
29Hyt
Zgeat1
Beget
end_values:
33.0 mm
23.0
1.0
Noraml set
12
请任何一个人帮忙,提前多谢
我的文本文件如下:
File Name:thUIK003K
Version:002BA07Gh
Name:HUJKO
Parameter Start End
-------------------------------------
parq 56 mm 33.0 mm
10Lqr 12.0 mm 23.0 mm
29Hyt 0.0 % 1.0 %
Zgeat1 normal set noraml set
Beget 12 km 12 km
-------------------------------------
other events:
11000 vent trig
213455 alram
xpara ypara
1 3
2 3
4 8
6 10
-------------------------------------
谢谢,它起作用了。但是如果我有多个文件,如何一个接一个地读取每个文本文件,做同样的事情,并垂直附加数据。对不起,我犯了一个错误。我现在修好了;DSir,我想一个接一个地读取文件夹中的所有文本文件,在每个文件迭代中执行与上面相同的操作。再次修复它。逐个输出结果文件;DSir,最后我想过滤我的最终数据,例如在解析所有变量后,我想过滤以下变量及其对应的最终值作为我的最终所需数据:所需参数列表:paraListFinal:parq 29Hyt Beget所需的最终值lues:end_值最终:33.0 1.0 12 My environment is python3.5 and wiondows10.
import glob
import os
import re
list_of_files=glob.glob('E:/StackOverFlow/python/01/pythonCodes/*.txt')
for fileName in list_of_files:
fin = open(fileName, "r")
data_list = fin.readlines()
fin.close()
targetSubstring='-------'
count = 0
data_list2=[]
line = data_list[0]
for line in data_list:
if targetSubstring in line and count > 0 :
break;
if targetSubstring in line or count > 0 :
count=count+1
data_list2.append(line)
data_list2.pop(0)
columns = []
column1 = []
column3 = []
for line in data_list2 :
columns = re.split('\s{2,}',line)
column1.append(columns[0])
column3.append(columns[2])
#fout = open('stripD.csv',"w")
path,ext = os.path.splitext(os.path.basename(fileName))
fout = open(path +'_' + 'stripD.csv',"w")
fout.write('para_list:\n')
for line in column1 :
fout.write(line)
fout.write('\n')
fout.write('end_values:\n')
for line in column3 :
line_tmp = re.findall('[\d.]{2,}',line)
print(line_tmp)
if len(line_tmp) !=0 :
fout.write(line_tmp[0].strip())
else:
fout.write(line.strip())
fout.write('\n')
fout.close()
input:#same contents
textFile.txt
textFile01.txt
result is below
output file name:textFile_stripD.csv
para_list:
parq
10Lqr
29Hyt
Zgeat1
Beget
end_values:
33.0
23.0
1.0
noraml set
12
output file name:textFile01_stripD.csv
para_list:
parq
10Lqr
29Hyt
Zgeat1
Beget
end_values:
33.0
23.0
1.0
noraml set
12