我有一个固定的文本文件,可以运行到50000行左右:
RECORD TRANSACTN SEQUENCE CR R/T ACCOUNT RSN ITEM ITEM CHN USER REASO
NBR NBR OR PIC NBR DB NBR NBR COD AMOUNT SERIAL IND .......FIELD.. DESCR
5,556 01 7450282689 C 538196640 9835177743 15 $9,064.81 00 CREDIT
5,557 01 7450282690 D 031301422 362313705 38 $592.35 43431 DR CR
5,558 01 7450282691 D 021309379 601298839 38 $1,491.04 44896 DR CR
5,559 01 7450282692 D 071108834 176885 38 $6,688.00 1454 DR CR
5,560 01 7450282693 D 031309123 1390001566241 38 $293.42 6878 DR CR
************************************************************************************************************************************
* *
* PPPPPP DDDDDD CCCCC K K # # *
* P P D D C C K K ####### *
* P P D D C K K # # *
* PPPPPP D D C KK # # *
* P D D C K K # # *
* P D D C C K K ####### *
* P DDDDDD CCCCC K K # # *
* *
* *
* START ******************************************************************************************************************** START *
* START ******************************************************************************************************************** START *
* START ******************************************************************************************************************** START *
在整个文件中,这些行的分组之间有随机的行制动器和头信息。我只关心包含字母“C”的行,并且只关心第3列的前两个数字是74。每个值都在它自己的单元格中,但由于我在拼接方面的不同尝试,最终的产品看起来一团糟。我在csv模块中为第一行编写了头文件,但它们下面的实际数据看起来像python抛出的。你知道吗
到目前为止,我已经尝试在csv模块中进行拼接,并使用str.find公司(str,beg,end)。我觉得我找到的解决方案对特定问题有效,但我无法将它们最终转化为一个可行的代码。你知道吗
任何帮助都将不胜感激。你知道吗
编辑:到目前为止,我在csv/codecs模块中的代码是
import codecs
import csv
with codecs.open(r'C:\Users\John\Documents\ATM project\PDCKCR09R009_2017-08-03_1115.txt') as f, open('output.csv', 'w') as fout:
writer = csv.writer(fout)
writer.writerow([ 'TRANSACTN_NBR', 'RECORD_NBR',
'SEQUENCE_OR_PIC_NBR', 'CR_DB', 'RT_NBR', 'ACCOUNT_NBR',
'RSN_COD', 'ITEM_AMOUNT', 'ITEM_SERIAL', 'CHN_IND',
'REASON_DESCR', 'SEQ2', 'ARCHIVE_DATE', 'ARCHIVE_TIME', 'ON_US_IND' ])
for line in f:
#f.extend(line.splitlines())
if 'C' in line:
#temp.append(line)
print(line)
else:
print('WRONG LINE:', (line))
我试着一件一件地在下一个要求之前有一个工作部分,但我似乎碰到了另一面墙。这个表单上的其他解决方案也很有帮助,但是我很难将它适应我的代码
如果没有
csv
,我会这么做:输出问题的数据:
相关问题 更多 >
编程相关推荐