python中將txt文件轉(zhuǎn)換為csv文件的三種方法舉例
假設(shè)有一個(gè)文本文件 data.txt 內(nèi)容如下:
Name, Age, City John, 25, New York Alice, 30, San Francisco Bob, 28, Los Angeles
方法一、使用內(nèi)置的 csv 模塊:
import csv # 讀取txt文件 txt_file_path = 'data.txt' csv_file_path = 'data.csv' with open(txt_file_path, 'r') as txt_file, open(csv_file_path, 'w', newline='') as csv_file: # 創(chuàng)建CSV寫入器 csv_writer = csv.writer(csv_file) # 使用CSV讀取器逐行讀取txt文件 csv_reader = csv.reader(txt_file) # 將每一行的內(nèi)容寫入CSV文件 for row in csv_reader: csv_writer.writerow(row) print(f"Successfully converted {txt_file_path} to {csv_file_path}.")
這個(gè)例子中,csv.reader用于逐行讀取txt文件的內(nèi)容,然后將其寫入csv文件中,使用csv.writer。請(qǐng)注意,newline=' ' 參數(shù)用于避免在寫入csv文件時(shí)產(chǎn)生額外的空行。
方法二、使用 pandas 庫(kù):
import pandas as pd # 讀取txt文件 txt_file_path = 'data.txt' csv_file_path = 'data.csv' # 使用pandas讀取txt文件 df = pd.read_csv(txt_file_path, delimiter=', ') # 將數(shù)據(jù)寫入csv文件 df.to_csv(csv_file_path, index=False) print(f"Successfully converted {txt_file_path} to {csv_file_path}.")
在這個(gè)例子中,pd.read_csv 函數(shù)用于讀取txt文件,delimiter=', ' 參數(shù)指定了逗號(hào)和空格作為分隔符。然后,df.to_csv 函數(shù)將數(shù)據(jù)寫入csv文件。index=False 參數(shù)用于禁用寫入文件時(shí)生成的索引列。
方法三、使用標(biāo)準(zhǔn)的文件讀寫操作
# 讀取txt文件 txt_file_path = 'data.txt' csv_file_path = 'data.csv' with open(txt_file_path, 'r') as txt_file, open(csv_file_path, 'w', newline='') as csv_file: # 逐行讀取txt文件 for line in txt_file: # 假設(shè)txt文件中的字段是由逗號(hào)和空格分隔的 fields = line.strip().split(', ') # 將字段以逗號(hào)分隔寫入csv文件 csv_file.write(','.join(fields) + '\n') print(f"Successfully converted {txt_file_path} to {csv_file_path}.")
這個(gè)例子中,使用 open 函數(shù)打開txt和csv文件,逐行讀取txt文件,然后將每一行的字段以逗號(hào)分隔寫入csv文件。需要根據(jù)實(shí)際情況進(jìn)行字段的分隔和處理。雖然這種方法相對(duì)于使用 csv 模塊和 pandas 庫(kù)來(lái)說(shuō)更為基礎(chǔ),但在某些簡(jiǎn)單的情況下,可能是一種直接且有效的方式。
總體而言,使用 csv 模塊和 pandas 庫(kù)通常更為方便和靈活,尤其是在處理大型和復(fù)雜的數(shù)據(jù)集時(shí)。
附:Python實(shí)現(xiàn)多條.txt文本數(shù)據(jù)合并為.csv文件數(shù)據(jù)
import os import csv def file_name(file_dir): for root, dirs, files in os.walk(file_dir): #root返回當(dāng)前目錄路徑;dirs返回當(dāng)前路徑下所有子目錄;files返回當(dāng)前路徑下所有非目錄子文件 return root,dirs,files fieldnames=['review','class'] if __name__=='__main__': csv_file=open("./merge.csv",'a+',newline='',encoding='utf-8') writer=csv.DictWriter(csv_file,fieldnames=fieldnames) writer.writeheader() file_dir = "E:/SmartTravelling/Code_bert_zhihu/THUCNews/THUCNews" root_0,dirs_0,_ = file_name(file_dir) for dir_0 in dirs_0: curdir=root_0+'/'+dir_0 root_1,_,files= file_name(curdir) for line in files: line=root_1+'/'+line data='' for temp in open(line, 'r',encoding="utf-8").readlines(): if temp !='/n': data+= temp.strip() writer.writerow({'review':data,'class':dir_0}) csv_file.close()
總結(jié)
到此這篇關(guān)于python中將txt文件轉(zhuǎn)換為csv文件的三種方法的文章就介紹到這了,更多相關(guān)python將txt文件轉(zhuǎn)換csv文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?matplotlib繪圖詳解大全(非常詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于python?matplotlib繪圖詳解的相關(guān)資料,matplotlib是python中用于繪制各種圖像的模塊,功能十分強(qiáng)大,通常與pandas模塊搭配使用,可以生成各種樣視的圖片,用于數(shù)據(jù)的分析和展示,需要的朋友可以參考下2023-09-09Python 按比例獲取樣本數(shù)據(jù)或執(zhí)行任務(wù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python 按比例獲取樣本數(shù)據(jù)或執(zhí)行任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Python第三方庫(kù)undetected_chromedriver的使用
這篇文章主要給大家介紹了關(guān)于Python第三方庫(kù)undetected_chromedriver的使用方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn)
本文主要介紹了使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Python技巧之實(shí)現(xiàn)批量統(tǒng)一圖片格式和尺寸
大家在工作的時(shí)候基本都會(huì)接觸到很多的圖片,有時(shí)為了不同的工作需求需要修改圖片的尺寸或者大小。本文為大家整理了Python批量轉(zhuǎn)換圖片格式和統(tǒng)一圖片尺寸,希望對(duì)大家有所幫助2023-05-05python3中bytes和string之間的互相轉(zhuǎn)換
這篇文章主要介紹了python3中bytes和string之間的互相轉(zhuǎn)換,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02Python+SimpleRNN實(shí)現(xiàn)股票預(yù)測(cè)詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python和SimpleRNN實(shí)現(xiàn)股票預(yù)測(cè)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-05-05解決導(dǎo)入django_filters不成功問(wèn)題No module named ''django_filter''
這篇文章主要介紹了解決導(dǎo)入django_filters不成功問(wèn)題No module named 'django_filter',具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07pycharm查看之前的運(yùn)行結(jié)果詳細(xì)步驟
在工作場(chǎng)景下,程序員如何運(yùn)用PyCharm去書寫代碼以及運(yùn)行文件,還有學(xué)會(huì)對(duì)各種突發(fā)情況的應(yīng)對(duì),這篇文章主要給大家介紹了關(guān)于pycharm查看之前的運(yùn)行結(jié)果的相關(guān)資料,需要的朋友可以參考下2023-04-04