我遇到了一个复杂的问题,我会尽力描述的。
我有一个文本文件,其中包含以下信息
客户名称: Zack客户编号:12345
10.4 2014556 - FSV聚-1.50 2月16日每台订单
10.5 2014556 - FSV Poly-1.50 2月16日每台订单
客户名称: Larry编号:00099
1.4 2014556 - FSV聚-1.50 2月16日每个单位订单
1.5 2014556 - FSV聚-1.50 2月16日每单位订单
客户名称: James客户编号:99999
5.4 2014556 - FSV聚-1.50 2月16日每单位订单
5.5 2014556 - FSV聚-1.50 2月16日每单位订单
等等……同样的格式。
我想要做的是将客户名称值"Zack“和客户编号"12345”添加到行尾,并去掉当前格式。最终以这种新的格式结束。
10.4 2014556 - FSV聚-1.50 2月16日每台订购Zach 12345
10.5 2014556 - FSV Poly-1.50 2月16日每台定单Zack 12345
1.4 2014556 - FSV聚-1.50 2月16日6每个单位订购拉里00099
1.5 2014556 - FSV聚-1.50 2月16日6每个单位订购拉里00099
5.4 2014556 - FSV聚-1.50 2月16日6每单位订单詹姆斯99999
5.5 2014556 - FSV聚-1.50 2月16日每单位订单詹姆斯99999
我的想法就像..。如果行以数字开头,那么将最后一个客户名称值和客户编号值添加到行的末尾?
这有可能吗?
非常感谢你抽出时间来!
这是我的代码:
import re
file = open('Orders.txt', 'r')
for line in file:
if line.__contains__('Customer Name') or line[0].isdigit():
print(line.lstrip())下面是一个更好的数据示例:

发布于 2017-02-24 16:16:13
首先,要小心打开文件,然后必须调用file.close()!
您可以做的是迭代文件,并在每次找到客户名称和号码时更改其名称和编号。
以下是我的看法:
customer_number = 0
customer_name = ''
with open('Orders.txt', 'r') as file: # Usually it's how files are opened
while True:
line = file.readline()
if line == '': # We get out of the loop when we're finished
break
if 'Customer Name' in line:
# Change customer number and name
# Quite hacky way to do it
listline = line.split('Customer')
customer_name = listline[0]
customer_number = listline[1]
else :
print('%s, %s, %s' % (line.strip(), customer_name, customer_number))请注意,在行的末尾将使用此方法写出“Name:yourcustomername”和“Number:yourcustomernumber”。你可以很容易地得到这个名字和号码,但我会让你自己找出:)
我还建议您将更改保存在文件中,而不是简单地打印它们。
https://stackoverflow.com/questions/42442864
复制相似问题