Python-从txt文件导入列表、迭代并作为参数传递
我试图将逗号分隔的列表从.txt文件(lib.txt)导入python列表。然后我想迭代列表中的每个项目,将每个值作为参数传递给另一个函数。一旦完成,循环应该继续到列表中的下一项,并且是无止境的,因为一旦循环到达列表的末尾,它就会重新开始 txt文件(lib.txt)的示例: 以下是我正在尝试的:Python-从txt文件导入列表、迭代并作为参数传递,python,python-3.x,list,list-comprehension,Python,Python 3.x,List,List Comprehension,我试图将逗号分隔的列表从.txt文件(lib.txt)导入python列表。然后我想迭代列表中的每个项目,将每个值作为参数传递给另一个函数。一旦完成,循环应该继续到列表中的下一项,并且是无止境的,因为一旦循环到达列表的末尾,它就会重新开始 txt文件(lib.txt)的示例: 以下是我正在尝试的: def iterateList(): li=open('lib.txt').readlines() li=list(li.split(',')) for i in li:
def iterateList():
li=open('lib.txt').readlines()
li=list(li.split(','))
for i in li:
otherFunction(i)
我对这段代码有一些问题。在Python3.6中,我无法运行第3行(使用li.split),我猜是因为li不是字符串。但是,如果我在尝试拆分之前将li转换为字符串,它也不起作用
我的做法正确吗?你会有不同的做法吗
谢谢你的关注
readlines
返回一个列表,您希望对字符串执行拆分,因此需要使用read
来返回字符串
一个可能的解决办法是:
def iterateList():
with open('lib.txt') as f:
data = f.read().split(',')
while True:
for i in data:
otherFunction(i)
您需要迭代代码中的
li
。以此为例:
def iterateList():
li=open('lib.txt').readlines()
for line in li:
items = line.split(',')
for item in items:
print(item)
# otherFunction(item)
打开(“test.txt”)作为f:
file=f.readlines()
对于文件中的行:
数字=行。拆分(“,”)
对于数字中的数字:
编号=编号。替换(“\n”和“”)
打印(数字)
产出:
483749
9384723
38485903
4875659
27388495
1.确保您正在使用带有open()的
。
这可以确保文件操作在使用后由Python关闭。有关更多信息,请参阅:
处理文件对象时,最好使用with
关键字。这样做的好处是,即使在某个时候出现异常,文件套件完成后也会正确关闭
2.与.split(“,”)
相比,更易于.split(“,”)
由于从技术上讲,每个数字都用逗号分隔,因此更容易一次处理两个数字,否则您将得到如下输出:
483749
9384723
38485903
4875659
27388495\n # We remove the '\n' in number 4 below.
3.你必须重复这一行才能抓住单词。
这就是文件中的行起作用的地方:
。当你接到电话后,你会得到号码<代码>用于行中的数字。拆分(“,”)
4.将“\n”
替换为”
。
由于行尾将有一个\n
,请确保将其替换为空
483749
9384723
38485903
4875659
27388495\n # We remove the '\n' in number 4 below.