簡體   English   中英

從csv文件中刪除特定字符,然后重寫為新文件

[英]Remove specific character from a csv file, and rewrite to a new file

我有一個VBA宏,每隔5分鍾就會在整個紐約證券交易所提取股票數據。 這將拉動一切,從當前價格到盈利日期,再到市盈率以及其他指標。 我現在正在嘗試設置cronjob,以運行一些python代碼來清理csv數據,然后再將其導入到mySQL數據庫中。 在設置cronjob之前,我需要先運行python代碼...寶貝步驟:)。

幾年前,我不再使用python,但在這里嘗試再次使用它。 經過一些研究,經過審查,他們在2.6中刪除了許多字符串方法,然后在3.1中刪除了maketrans()參數。 我正在運行python 3.3。

下方有人對我的代碼有任何建議嗎? 我一次拉入csv文件的1行,並嘗試將百分號(%)替換為空('')。 我已經嘗試過在if語句中使用replace()參數,但這也不起作用。 非常感謝。

謝謝,

import csv
import string

input_file = open('StockData.csv', 'r')
output_file = open('Output.csv', 'w')
data = csv.reader(input_file)
writer = csv.writer(output_file)
specials = '%'

for line in data:
    trans = s.makestrans(specials, ''*len(specials))
    new_line = line.translate(trans)
    writer.writerow(new_line)

input_file.close()
output_file.close() 

我知道這是一個古老的問題,但是我一直在努力解決類似的問題。

您可以使用列表推導,而不是將每一行都轉換為字符串以便可以使用replace。

所以:

for line in data:
    line = str(line)
    new_line = str.replace(line,specials,'')
    writer.writerow(new_line.split(','))

變成:

for line in data:
    line = [value.replace(specials, '') for value in line]
    writer.writerow(line)

感謝大家的幫助-以下是我收到結果的代碼。 我使用了help(string.split)來使我的數據在替換后出現在正確的列中。 另外,關鍵是將line設為字符串,以便進行替換。

import csv
import string

input_file = open('DesktopData.csv', 'r')
output_file = open('fixformat.csv', 'w')
data = csv.reader(input_file)
writer = csv.writer(output_file,quoting=csv.QUOTE_ALL)# dialect='excel')
specials = '%'

for line in data:
    line = str(line)
    new_line = str.replace(line,specials,'')
    writer.writerow(new_line.split(','))

input_file.close()
output_file.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM