【发布时间】:2020-10-12 20:32:48
【问题描述】:
我正在尝试读取下面 csv 文件的每一行。
我想从每一行中提取数据并附加到一个新的文本文件中。
这是我用来读取 csv 文件的代码:
#Count number of lines in the csv file
cnd = datetime.now().strftime("%m%d%y")
df = pd.read_csv(cnd+'sr.csv')
numline = len(df)
ma = df['Make'][:numline]
mo = df['Model'][:numline]
yr = df['Year'][:numline]
cl = df['Color'][:numline]
pr = df['Price'][:numline]
#For loop to break the csv file into 10 lines at a time
for x in range(0,numline,10):
if x < 10:
mk = ma[:10]
mod = mo[:10]
ye = yr[:10]
clr = cl[:10]
prc = pr[:10]
我正在使用下面代码的 sn-p 来创建新的文本文件,从 csv 文件中提取数据并将数据附加到新的文本文件中。问题出在第三个代码块上。
#Create text File
facts = datetime.now().strftime("%m-%d-%y-%H%M%S.txt")
f = open(facts, 'w+')
#Write generic Title
f.write('Car Facts' + '\r')
f.close()
#Open the text file. Iterate thru each line of the csv file and append to the text file
of = open(facts, "a")
for k in mk:
for m in mod:
for y in ye:
for c in clr:
for p in prc:
of.write('\r' + 'Make: ' + str(k) + '\r' + 'Model: ' + str(m) + '\r' + 'Year: ' + str(y) + '\r' + 'Color: ' + str(c) + '\r' + 'Price: ' + str(p) + '\r')
of.close()
我最终得到一个包含大约 30 个随机组合块的文本文件。 写入文本文件的第一个和最后一个块是正确的。 两者之间的其他一切都是我不需要的随机组合。
我怎样才能修复代码以获得下面想要的最终结果?
谢谢
Car Facts
Make: Ford
Model: Bronco
Year: 1978
Color: Blue
Price: $24,000.00
Make: Land Rover
Model: Defender
Year: 1985
Color: Black
Price: $21,000.00
【问题讨论】:
-
阅读this article 了解调试代码的技巧。
-
您在哪里阅读您的 csv 文件?
mk/mod/ye/clr/prc未在您的 sn-p 中定义。 -
我假设这些变量是集合。试试
zip函数:for data in zip(mk,mod,ye,clr,prc): print(data) -
嗨马克西米利安。这是我用来读取 csv 文件的 sn-p:
-
#计算csv文件行数 cnd = datetime.now().strftime("%m%d%y") df = pd.read_csv(cnd+'sr.csv') numline = len(df) ma = df['Make'][:numline] mo = df['Model'][:numline] yr = df['Year'][:numline] cl = df['Color'][ :numline] pr = df['Price'][:numline] #For循环将csv文件一次分成10行 for x in range(0,numline,10): if x
标签: python python-3.x csv