你如何摆脱CSV文件中的空白?

时间:2016-11-29 18:00:05

标签: python python-3.x csv

当我运行我的程序时,在空白的CSV文件中,每个产品之间似乎只有一行间隙。你如何摆脱这种差距? (如第一张图所示)

This is what happens when I fully run my code

This is my original CSV file that contains all the product information. Row A is the GTIN-8 code, row B is the product name, C is the current stock level, D is the re-order stock level, and E is the target stock level (Just to clarify)

这是我的代码:

import csv
redo='yes'

receipt=open('receipt.txt', 'wt')

stock=open('Stock_.csv', 'rt')
stock_read=csv.reader(stock)

blank_csv=open('Blank_csv_.csv', 'wt')
blank_csv_write=csv.writer(blank_csv)


clothes=(input('\nPlease enter the GTIN-8 code of what you want to purchase: '))
quantity=int(input('\nPlease enter the amount of this product you want to buy: '))

for row in stock_read:
    GTIN=row[0]
    product=row[1]
    current=row[2]
    re_order=row[3]
    target=row[4]

    if clothes==GTIN:
        current=int(current)-quantity
    blank_csv_write.writerows([[GTIN,product,current,re_order,target]])

stock.close()
blank_csv.close()

reorder_receipt=open('receipt.txt', 'wt')

blank_csv2=open('Blank_csv_.csv', 'rt')
blank_csv_read2=csv.reader(blank_csv2)

stock_check=input('Press \"ENTER\" if you want to check the current stock leavels: ')

if stock_check=='':
    for row in blank_csv_read2:
        for field in row:

            GTIN=row[0] 
            product=row[1]
            current=int(row[2])
            re_order=int(row[3])
            target=int(row[4])
            if current<=re_order:
                re_stock=target-current
                reorder_receipt.write(GTIN+' '+product+' '+str(current)+' '+str(re_order)+' '+str(target)+' '+str(re_stock)+'\n')

blank_csv2.close()
reorder_receipt.close()

提前谢谢!!!!

3 个答案:

答案 0 :(得分:1)

这似乎是THIS问题的重复。我相信那里的答案将帮助您解决问题。提示:换行=''

答案 1 :(得分:0)

我没有详细深入研究您的代码,但乍一看,如果您想删除每行数据之间的额外行,请删除换行符&#39; \ n&#39 ;从reorder_receipt.write()函数调用结束。

换句话说,修改:

reorder_receipt.write(GTIN+' '+product+ ... +str(re_stock)+'\n')

是:

reorder_receipt.write(GTIN+' '+product+ ... +str(re_stock))

答案 2 :(得分:0)

我猜问题出在target=row[4]上。 可能是“目标”字符串正在获得额外的\ n。剥离它可能会解决问题。 target.strip()