Python 从CSV中隔离字符串并打印它们 问题:
这是一个大项目的一小部分。我想相信我擅长理解分隔符和CSV,但我不知道该做什么或该问什么 愚蠢的问题,我如何从列表中分离字符串并打印它们Python 从CSV中隔离字符串并打印它们 问题:,python,csv,Python,Csv,这是一个大项目的一小部分。我想相信我擅长理解分隔符和CSV,但我不知道该做什么或该问什么 愚蠢的问题,我如何从列表中分离字符串并打印它们 (0, 'img_10.jpg') (1, 'img_8.mp4') (2, 'img_31.mp4') (3, 'img_30.mp4') (4, 'img_9.mp4') (5, 'img_12.jpg') (6, 'img_20.mp4') (7, '.DS_Store') (8, 'img_21.mp4') (9, 'img_35.mp4') 期望输
(0, 'img_10.jpg')
(1, 'img_8.mp4')
(2, 'img_31.mp4')
(3, 'img_30.mp4')
(4, 'img_9.mp4')
(5, 'img_12.jpg')
(6, 'img_20.mp4')
(7, '.DS_Store')
(8, 'img_21.mp4')
(9, 'img_35.mp4')
期望输出:
我的脚本如下:
由于您正在枚举,因此还保存了
文件
变量上的索引,使其成为元组<代码>文件[1]应该可以处理您的案例。如果您真的需要枚举器,我建议在另一个变量上分隔它。不要使用列表迭代器枚举
当您枚举列表时,它会将索引和元素作为元组给出,这就是为什么会得到(i,element)
元组。如果不需要索引,那么只能迭代列表元素
使用list
作为变量名不是一个好做法,因为它是python关键字
folder_path = "path"
list_files = os.listdir(folder_path)
with open("files.txt", "w", newline='\n', encoding='utf-8') as csvfile:
i = 0
for file in list_files:
csvfile.write(str(file) + "\n")
print(file)
您可以这样使用
列表理解
:
In [2423]: l = [(0, 'img_10.jpg')
...: ,(1, 'img_8.mp4')
...: ,(2, 'img_31.mp4')
...: ,(3, 'img_30.mp4')
...: ,(4, 'img_9.mp4')
...: ,(5, 'img_12.jpg')
...: ,(6, 'img_20.mp4')
...: ,(7, '.DS_Store')
...: ,(8, 'img_21.mp4')
...: ,(9, 'img_35.mp4')]
In [2426]: s = [i[1] for i in l]
In [2427]: s
Out[2427]:
['img_10.jpg',
'img_8.mp4',
'img_31.mp4',
'img_30.mp4',
'img_9.mp4',
'img_12.jpg',
'img_20.mp4',
'.DS_Store',
'img_21.mp4',
'img_35.mp4']
因为您使用的是
enumerate
,所以在元组中循环,元组包含列表中每个元素的索引。。你最好删除它,你的代码应该可以正常工作:
import glob, os
import sys
import csv
folder_path = "path"
list_ = os.listdir(folder_path)
with open("files.txt", "w", newline='\n', encoding='utf-8') as csvfile:
i = 0
for file in list_:
csvfile.write(str(file) + "\n")
print(file)
删除了pandas标签,因为没有pandas代码。rsal问题是免责的,而不是元组,重定向是不正确的。如果答案解决了您的问题,请将其作为答案感谢他们
In [2423]: l = [(0, 'img_10.jpg')
...: ,(1, 'img_8.mp4')
...: ,(2, 'img_31.mp4')
...: ,(3, 'img_30.mp4')
...: ,(4, 'img_9.mp4')
...: ,(5, 'img_12.jpg')
...: ,(6, 'img_20.mp4')
...: ,(7, '.DS_Store')
...: ,(8, 'img_21.mp4')
...: ,(9, 'img_35.mp4')]
In [2426]: s = [i[1] for i in l]
In [2427]: s
Out[2427]:
['img_10.jpg',
'img_8.mp4',
'img_31.mp4',
'img_30.mp4',
'img_9.mp4',
'img_12.jpg',
'img_20.mp4',
'.DS_Store',
'img_21.mp4',
'img_35.mp4']
import glob, os
import sys
import csv
folder_path = "path"
list_ = os.listdir(folder_path)
with open("files.txt", "w", newline='\n', encoding='utf-8') as csvfile:
i = 0
for file in list_:
csvfile.write(str(file) + "\n")
print(file)