将两个列表压缩到文本文件中

时间:2015-05-22 14:44:03

标签: python arraylist

我正在尝试创建一个程序来替换创建CSV的Excel(供个人使用)。但是,下面的代码会复制第一个文本文件中的值。例如,我的第一个文本文件是“SourceCAS Numbers”。

拉链时会产生以下效果 109922, 109922

何时应该执行以下操作: 71751412, Abamectin

这是我的代码:

import os import csv import time

#----Federal/State----#
#Ask the user to fill out a text file with Source CAS numbers
print("Input the source CAS numbers with which you're comparing against")
os.system("notepad.exe C:\sourcecas.txt")
time.sleep(15)

#Take the text file with Source CAS Numbers and make it into a list
sourcecas = []
file = open(r'C:\sourcecas.txt', 'r')
sourcecas = file.readlines()
sourcecas[:] = [line.rstrip('\n') for line in sourcecas]

#Ask the user to fill out a text file with Source CAS names
print("Input the source CAS names in alphabetical order")
os.system("notepad.exe C:\sourcecasnames.txt")
time.sleep(15)

#Take the text file with Source CAS Names and make it into a list
sourcecasnames = []
file = open(r'C:\sourcecas.txt', 'r')
sourcecasnames = file.readlines()
sourcecasnames[:] = [line.rstrip('\n') for line in sourcecasnames]

#Zip the source cas numbers and names into a CSV file
zip(sourcecas, sourcecasnames)
with open(r'C:\CAS-S.csv', 'w') as f:
writer = csv.writer(f, delimiter=',')
writer.writerows(zip(sourcecas, sourcecasnames))

1 个答案:

答案 0 :(得分:1)

我把它修剪了一下,但这是我编辑过的代码。整个问题是您没有关闭名称文件

import csv

fnumbers = r'casnum.txt'
fnames = r'casname.txt'
foutput = r'CAS-S.csv'
#Take the text file with Source CAS Numbers and make it into a list
sourcecas = []
file = open(fnumbers, 'r')
sourcecas = file.readlines()
sourcecas[:] = [line.rstrip('\n') for line in sourcecas]
file.close() # Here's the fix

#Take the text file with Source CAS Names and make it into a list
sourcecasnames = []
file = open(fnames, 'r')
sourcecasnames = file.readlines()
sourcecasnames[:] = [line.rstrip('\n') for line in sourcecasnames]
file.close() # Make sure to close your file when you're done with it

#Zip the source cas numbers and names into a CSV file
zip(sourcecas, sourcecasnames)
with open(foutput, 'w') as f: # note that with open() closes itself
    writer = csv.writer(f, delimiter=',')
    writer.writerows(zip(sourcecas, sourcecasnames))

之后,我有CAS-S.csv包含:

71751412,Abamectin
83329,Acenaphthene
...
10026116,Zirconium tetrachloride