将结果写入.txt文件

时间:2016-06-29 15:45:51

标签: python arrays text-files with-statement file-writing

我创建了一个代码来获取两个.txt文件,比较它们并将结果导出到另一个.txt文件。下面是我的代码(抱歉这个烂摊子)。

有什么想法吗?或者我只是一个低能儿?

使用python 3.5.2:

# Barcodes Search (V3actual)

# Import the text files, putting them into arrays/lists

with open('Barcodes1000', 'r') as f:
    barcodes = {line.strip() for line in f}

with open('EANstaging1000', 'r') as f:
    EAN_staging = {line.strip() for line in f}

##diff = barcodes ^ EAN_staging 
##print (diff)



in_barcodes_but_not_in_EAN_staging = barcodes.difference(EAN_staging)

print (in_barcodes_but_not_in_EAN_staging)

# Exporting in_barcodes_but_not_in_EAN_staging to a .txt file

with open("BarcodesSearch29_06_16", "wt") as BarcodesSearch29_06_16:    # Create .txt file
    BarcodesSearch29_06_16.write(in_barcodes_but_not_in_EAN_staging)    # Write results to the .txt file

2 个答案:

答案 0 :(得分:2)

从评论到您的问题,听起来您的问题是您希望将字符串列表保存为文件。 File.write需要一个字符串作为输入,而File.writelines需要一个字符串列表,这就是您的数据所在的位置。

with open("BarcodesSearch29_06_16", "wt") as BarcodesSearch29_06_16:
    BarcodesSearch29_06_16.writelines(in_barcodes_but_not_in_EAN_staging)

这将遍历您的列表in_barcodes_but_not_in_EAN_staging,并将每个元素作为单独的行写入文件BarcodesSearch29_06_16

答案 1 :(得分:1)

试试BarcodesSearch29_06_16.write(str(in_barcodes_but_not_in_EAN_staging))。此外,在您使用BarcodesSearch29_06_16.close()写入文件后,您还要关闭该文件。