版本声明:Python2.7
原代码:
date = raw_input("请输入销售日期:" )
ID = raw_input("请输入销售员编号:" )
name = raw_input("请输入商品名称:" )
number = raw_input("请输入商品数量:" )
price = raw_input("请输入商品单价:" )
sum = int(number)*int(price)
s =(date+ID+name+number+price+sum)
经过不断修改,前后出现报错:
1、TypeError: cannot concatenate 'str' and 'int' objects
2、TypeError: can only concatenate tuple (not "str") to tuple (python)
3、不报错,但是写出的中文是乱码
针对第一第二个问题,我查了查,反复尝试了“+”和“,”去调整,也尝试了str(变量名)、int(变量名)。
前者还是会出现报错,后者则会出现,像“001”这样的数据,要么变成“1”,要么变成“ab001”的情况。
针对第三个问题,像是在输入中文的地方前面加u等等,试了几种,还是不太行。
最后到的一个解决办法如下:
修改后的代码:
date = raw_input("请输入日期:" )
ID = raw_input("请输入编号:" )
x = raw_input("请输入名称:" )
g = x.decode('utf-8')
name = g.encode('gbk')
number = raw_input("请输入数量:" )
price = raw_input("请输入单价:" )
sum = int(number)*int(price)
s ="%0s%13s%13s%13s%13s%13s" % (date, ID,name,number,price,sum)
运行成功,能够顺利写入文件,且中文输出有效。
后来想要读取文件中符合条件的行,根据关键词按行搜索和提取,在打印提取结果时,再次遇到了中文乱码问题。
最后的解决方式是:
f = open("D:\\test.txt","r")
lines = f.readlines()
print("日期 名称 数量 价格 共计")
for lines in lines:
if "001" in lines:
print(lines.decode("gbk"))
Reference:
版权声明:本文为优快云博主「joyfixing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/joyfixing/article/details/79971667