Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我输入4时,我的文件有5个项目,如何修复此问题?_Python_Python 3.x - Fatal编程技术网

Python 当我输入4时,我的文件有5个项目,如何修复此问题?

Python 当我输入4时,我的文件有5个项目,如何修复此问题?,python,python-3.x,Python,Python 3.x,因此,我的程序要求用户在文本文件中输入他们想要的内容(我将其命名为chapter14file.txt)。完成后,应输入“完成”。所以我创建了一些打印语句,以确保一切正常。如果我运行这个程序并转到有问题的print语句(最后一行),它将显示比我输入的内容更多的内容。如果我在单独的行中输入: 一, 二, 试验 三, 完成 现在我做完了。因此,我输入“done”,它进入print语句并显示: ['1','2','Test','3',' 因此,重要的是要知道,我的任务是将用户输入转换为列表。这就是为什么

因此,我的程序要求用户在文本文件中输入他们想要的内容(我将其命名为chapter14file.txt)。完成后,应输入“完成”。所以我创建了一些打印语句,以确保一切正常。如果我运行这个程序并转到有问题的print语句(最后一行),它将显示比我输入的内容更多的内容。如果我在单独的行中输入:

一,

二,

试验

三,

完成

现在我做完了。因此,我输入“done”,它进入print语句并显示: ['1','2','Test','3','

因此,重要的是要知道,我的任务是将用户输入转换为列表。这就是为什么项目在方括号中

chapter14file = open ("chapter14file.txt", "w+")

while True:
    user_item = str (input ("Please enter what you would like to be added to chapter14file.txt. Type 'done' when you are finished. ") )
    if user_item.upper() == "DONE":
        break
    else:
        chapter14file.write (user_item + ",")

chapter14file.close()
items_from_file = (open ("chapter14file.txt").read())
items_list = items_from_file.split(",")
items_list_capital = [ elem.upper() for elem in items_list ] #Converts each element of the list to only have capital letters, no lowercase letters. Makes the search case insensitive.
print (items_from_file, items_list, items_list_capital)
预期值(与前面的示例一致):['1','2','Test','3']

实际值:['1','2','Test','3','']


注意:当我谈论结果时,“特别是,在两个小撇号之间没有任何内容。

这就是问题所在:

chapter14file.write (user_item + ",")
您正在将该
附加到每个条目。最后一个条目看起来像:

a,b,c,
当您将此字符串在
处拆分时,
-由于最后一个
字符,您将得到一个空字符串


您可以通过删除最后一个
或剥离空字符串来修复它

这就是问题所在:

chapter14file.write (user_item + ",")
您正在将该
附加到每个条目。最后一个条目看起来像:

a,b,c,
当您将此字符串在
处拆分时,
-由于最后一个
字符,您将得到一个空字符串


您可以通过删除最后一个
或剥离空字符串来修复它

对于“,”也可以使用相同的格式,但对于while语句,可以尝试以下方式: y=0; 尽管如此: user_item=str(输入(“请输入您希望在完成后添加到chapter14file.txt中的内容。键入‘完成’))


使用变量y来查找第一个值。

您也可以为“,”保留相同的格式,但可以为while语句尝试类似的操作: y=0; 尽管如此: user_item=str(输入(“请输入您希望在完成后添加到chapter14file.txt中的内容。键入‘完成’))


使用变量y查找第一个值。

赋值的一部分是“将用逗号连接的项写入文件”。因此我确实需要逗号,如何在没有空字符串的情况下拆分项?在写入文件时,使用
连接
而不是连接。连接示例:赋值的一部分是“将用逗号连接的项写入文件。“因此,我确实需要逗号,如何在没有空字符串的情况下拆分项目?在编写文件时,使用
join
而不是串联。连接示例:我不喜欢文件打开的时间超过需要的时间。我认为最好将项目存储在一个数组中,然后在完成后,将内容转储到一个文件中。然后,您不能按需要格式化项目,例如执行
“,”。join(arr)
,这将创建逗号分隔的字符串。我不喜欢文件打开的时间超过需要的时间。我认为最好将项目存储在一个数组中,然后在完成后,将内容转储到一个文件中。然后,您不能按需要格式化项目,例如执行
“,”.join(arr)
,这将创建逗号分隔的字符串。