我有这个问题。我阅读了包含一些信息的简单文本文件,然后我将附加信息附加到该字符串并写入新文件。 它有效,但是当我的一些字符串在某些部分周围有单引号时,python会用双引号写回。
import sys,os,csv
def write(output):
with open (outputfilename, 'a') as f:
writer = csv.writer(f, delimiter = '|', lineterminator = '\r\n')
writer.writerows(output)
dic_one = {} # some dict with values
def get_val(i,id):
for k,v in dict_one.items():
keys_list = k.split('-')
if int(id) == int(keys_list[-2]):
if id in keys_list:
value = v
del dict_one[k]
return value
with open(org_file, 'r') as f:
for i, line in enumerate(f):
temp_list = []
id = line[0:3]
second_string = get_val(i, id)
output_line = line + second_string
# reason why I am using lists is because my systems throws permission denied errors, due to restrictions on folder.
# i keep all records in memory and then write them as i get to my last line
temp_list.append(output_line)
write_list.append(temp_list)
if i == 60000-1:
write(output_list)
output_list = []
从此我的字符串变为:
string = 1234 test test "test" test
所需的输出是:来自dict_one的1234测试测试“测试”测试值
60k行中4-5个案例的输出是:“1234测试测试”“测试”“测试值来自dict_one”
仅在“存在”的行中发生。 谢谢你的努力!
答案 0 :(得分:1)
看起来问题必须在get_val()中 - 在阅读或写入文件时,python本身不会随机添加引号。