2016-11-29 6 views
1

Когда я запускаю свою программу, в пустой 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() 

Заранее спасибо !!!!

+0

Любой шанс использования blank_csv_write.writerow ([GTIN, product, current, re_order, target]) вместо writeows устраняет проблему? (Обратите внимание, что я удалил одну пару кронштейнов) –

ответ

1

Кажется, это дубликат номера THIS. Я верю, что ответ там поможет вам решить вашу проблему. СОВЕТ: newline = ''

0

Я не копал в ваш код очень подробно, но на первый взгляд выглядит, если вы хотите удалить дополнительную строку между каждой строкой данных, удалите символ новой строки '\ n' с конца reorder_receipt.write() вызов функции.

Другими словами, изменение:

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

быть:

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

0

Я предполагаю, что проблема с target=row[4]. Может быть, «целевая» строка получает дополнительный \ n. Таким образом, устранение проблемы может решить проблему. target.strip()

Смежные вопросы