【求解】一道python的题,有个问题我着实想不到好的解决方法。

我在学习python时遇到的一个问题,我想了很久都没想到完美的解决方案,所以想问问大家,希望大家可以帮忙修正一下,谢谢!
题目是这样的:
编写一个代码,将用户每次输入的内容作为一个元素,组成一个列表,然后将这个列表转储为CSV,并能重新解析为列表,其中的元素不变。
但我尝试了两种方法,但都没办法完美满足要求,总是在最后再次解析为列表时出现问题。
第一种:仅支持输入单字符,多字符就会出现问题。代码如下:

# 创建一个有内容的列表
lst = []  # 创建一个列表
num = 1  # 命一个初始值为1的变量
while True:  # 循环输入元素
    value = input("请输入第{}个元素:".format(num))  # 获取用户输入的值
    if value == '':
        break
    else:
        lst.append(value)  # 将获取的值写入列表
    num += 1  # 计数
print("生成的列表为:{}".format(lst))
# 将列表转为 str
x = ','.join(lst)
# 将内容写入csv文件
with open("C:\\Users\\shini\\Desktop\\test.csv",'w+',encoding='utf-8') as test:  # 生成csv文件
    test.write(x)  # 将内容写入csv文件
# 完成
print("csv文件创建完成!")
print(f'csv文件中内容为:{x}')
# 提取
table = []
with open("C:\\Users\\shini\\Desktop\\test.csv",'r+',encoding='utf-8') as test1:
    txt = test1.read()
    for z in range(0,len(txt),2):
        table.append(txt[z])
    print(f'csv文件内容转列表为:{table}')

单字符运行结果如下

请输入第1个元素:w
请输入第2个元素:r
请输入第3个元素:,
请输入第4个元素:4
请输入第5个元素:
生成的列表为:['w', 'r', ',', '4']
csv文件创建完成!
csv文件中内容为:w,r,,,4
csv文件内容转列表为:['w', 'r', ',', '4']

多字符运行结果如下:

请输入第1个元素:eew
请输入第2个元素:d
请输入第3个元素:,j
请输入第4个元素:sd
请输入第5个元素:
生成的列表为:['eew', 'd', ',j', 'sd']
csv文件创建完成!
csv文件中内容为:eew,d,,j,sd
csv文件内容转列表为:['e', 'w', 'd', ',', ',', 'd']

第二种:若输入字符中本身含有点,则会把原本的点也转换成逗号:

# 创建一个有内容的列表
lst = []  # 创建一个列表
num = 1  # 命一个初始值为1的变量
while True:  # 循环输入元素
    value = input("请输入第{}个元素:".format(num))  # 获取用户输入的值
    if value == '':
        break
    else:
        lst.append(value)  # 将获取的值写入列表
    num += 1  # 计数
# 把逗号换成点
for i in range(len(lst)):
    if ',' == lst[i]:
        lst[i] = lst[i].replace(',','.')
# 保存
f = open("C:\\Users\\shini\\Desktop\\test.csv",'w+',encoding='utf-8')
f.write(','.join(lst) + '\n')
f.close()
print('csv文件保存成功!')
# 读取
f2 = open("C:\\Users\\shini\\Desktop\\test.csv",'r+',encoding='utf-8')
data = f2.read().strip('\n').split(',')
for i in range(len(data)):
    if '.' == data[i]:
        data[i] = data[i].replace('.',',')
print(data)
f2.close()

运行结果如下:

请输入第1个元素:r
请输入第2个元素:.
请输入第3个元素:,
请输入第4个元素:r
请输入第5个元素:u
请输入第6个元素:
csv文件保存成功!
['r', ',', ',', 'r', 'u']

txt是个字符串,txt[z]是个字符,你多个字符肯定读取错位置啊


with open("C:\\Users\\shini\\Desktop\\test.csv",'r+',encoding='utf-8') as test1:
    txt = test1.read()
    for z in range(0,len(txt),2):
        table.append(txt[z])
    print(f'csv文件内容转列表为:{table}')

txt是个字符串,而txt[z]是单个字符的字符串

可不可以这样,写入文件的时候给它添加一个换行符“\n”,取出来的时候去掉


# 创建一个有内容的列表
lst = []  # 创建一个列表
num = 1  # 命一个初始值为1的变量
while True:  # 循环输入元素
    value = input("请输入第{}个元素:".format(num))  # 获取用户输入的值
    if value == '':
        break
    else:
        lst.append(value)  # 将获取的值写入列表
    num += 1  # 计数
print("生成的列表为:{}".format(lst))
# 将内容写入csv文件
with open("test3.csv", 'w+', encoding='utf-8') as test:  # 生成csv文件
    for i in lst:
        test.write(i + '\n')  # 添加一个换行符,将内容写入csv文件

# 提取
table = []
with open("test3.csv", 'r+', encoding='utf-8') as test1:
    for i, line in enumerate(test1, 1):
        table.append(line.strip("\n"))  # 去掉换行符,并添加到列表
    print(f'csv文件内容转列表为:{table}')