python中將txt文件轉(zhuǎn)換為csv文件的三種方法舉例
假設(shè)有一個文本文件 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}.")這個例子中,csv.reader用于逐行讀取txt文件的內(nèi)容,然后將其寫入csv文件中,使用csv.writer。請注意,newline=' ' 參數(shù)用于避免在寫入csv文件時產(chǎn)生額外的空行。
方法二、使用 pandas 庫:
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}.")在這個例子中,pd.read_csv 函數(shù)用于讀取txt文件,delimiter=', ' 參數(shù)指定了逗號和空格作為分隔符。然后,df.to_csv 函數(shù)將數(shù)據(jù)寫入csv文件。index=False 參數(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文件中的字段是由逗號和空格分隔的
fields = line.strip().split(', ')
# 將字段以逗號分隔寫入csv文件
csv_file.write(','.join(fields) + '\n')
print(f"Successfully converted {txt_file_path} to {csv_file_path}.")這個例子中,使用 open 函數(shù)打開txt和csv文件,逐行讀取txt文件,然后將每一行的字段以逗號分隔寫入csv文件。需要根據(jù)實(shí)際情況進(jìn)行字段的分隔和處理。雖然這種方法相對于使用 csv 模塊和 pandas 庫來說更為基礎(chǔ),但在某些簡單的情況下,可能是一種直接且有效的方式。
總體而言,使用 csv 模塊和 pandas 庫通常更為方便和靈活,尤其是在處理大型和復(fù)雜的數(shù)據(jù)集時。
附: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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python編程使用*解包和itertools.product()求笛卡爾積的方法
這篇文章主要介紹了Python編程使用*解包和itertools.product()求笛卡爾積的方法,涉及Python列表轉(zhuǎn)換及itertools.product()求笛卡爾積相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
python實(shí)現(xiàn)視頻讀取和轉(zhuǎn)化圖片
今天小編就為大家分享一篇python實(shí)現(xiàn)視頻讀取和轉(zhuǎn)化圖片,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python中關(guān)于py文件之間相互import的問題及解決方法
這篇文章主要介紹了python中關(guān)于py文件之間相互import的問題,本文用一個例子演示下如何解決python中循環(huán)引用的問題,需要的朋友可以參考下2022-02-02
Python使用MySQL8.2讀寫分離實(shí)現(xiàn)示例詳解
在這篇文章中,我們將了解如何將?MySQL?8.2?的讀寫分離功能與?MySQL-Connector/Python?一起使用的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
機(jī)器學(xué)習(xí)python實(shí)戰(zhàn)之手寫數(shù)字識別
這篇文章主要為大家詳細(xì)介紹了機(jī)器學(xué)習(xí)python實(shí)戰(zhàn)之手寫數(shù)字識別,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
解決安裝python庫時windows error5 報錯的問題
今天小編就為大家分享一篇解決安裝python庫時windows error5 報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
對python中的os.getpid()和os.fork()函數(shù)詳解
今天小編就為大家分享一篇對python中的os.getpid()和os.fork()函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python和pywin32實(shí)現(xiàn)窗口查找、遍歷和點(diǎn)擊的示例代碼
這篇文章主要介紹了python和pywin32實(shí)現(xiàn)窗口查找、遍歷和點(diǎn)擊的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

