【发布时间】:2013-08-10 09:20:21
【问题描述】:
基本阅读,一切正常:
with open('kres.csv', newline='') as f:
reader = csv.reader(f, quoting=csv.QUOTE_ALL)
for row in reader:
print(row)
kres.append(row)
我在这里写入 csv,但是当行中的字段(项目)为空时,列会移动,这是(我假设)因为程序不知道文件中有多少列并一一写入。
但我希望它不要跳过空白字段,我希望它写一些默认字符或无。我不知道如何检查字段是否为空。
with open('kres2.csv', 'w', newline='') as f: # Just use 'w' mode in 3.x
writer = csv.writer(f)
writer.writerows(kres)
Windows 7 上的 Python 3.3.2
编辑: 试图 chak 列表中的每个字段,但不工作
with open('article_all_krestianin_ru.csv', newline='') as f:
reader = csv.reader(f, quoting=csv.QUOTE_ALL)
for row in reader:
for i in row:
if i == '':
i = '-'
print(row)
krestianin.append(row)
编辑 2: ['А теперь - про язык;Окт 21', ' 2008;Окт 21', ' 2008А теперь - про язык спрашивала', 'как ;http://www.krestianin.ru/articles/5541.php']
这是来自控制台,所有 4 个项目都已到位(分隔符;)。这些项目中的任何一个都可能丢失,一个甚至两个,所以如果丢失 4 个中的 2 个,我想在它们的位置上加上“-”
【问题讨论】:
-
我认为您需要更改实际的 CSV 文件,而不是代码
-
@ton1c 这是一个选项,当然,你认为现在有办法在代码中做到这一点吗?
-
如果您知道行中应该有多少元素,以及应该在哪里,那么您只需将其他元素添加到您的
kres列表中。或者您可以读取 CSV 文件,并在需要时将“空元素”添加为-(某事、某事、-、 某事) -
您的 CSV 文件中没有空元素。如果您愿意,那么您的代码将跳过空列。所以你更新的这段代码是没用的。尝试发布您从文件中读取的实际完整行。
-
您可以检查的唯一元素是最后一个(链接),只需使用正则表达式即可。我说俄语,这些信息没有任何意义或顺序。你不能检查它。
标签: python csv export-to-csv