我想改进我的csv文件。
我导入了fileinput,optparse和re modules。
并加载一个csv文件,并设置一个单词是否不存在,删除它。
但是我收到了空白文件。
这是我的代码:
import fileinput
import optparse
import re
parser = optparse.OptionParser("usage%prog -d <directory>")
parser.add_option('-d', dest='directory', type='string', help='specify file path')
dname = options.directory
for line in fileinput.input(dname, inplace=1):
if bool(re.match("\d\d\d\d",line)) == False:
continue
我的csv文件包含如下:
2014,10,21....
2014,10,22....
asdfsadf
所以我想删除第3行。
我的代码有什么问题? 任何帮助都会非常感激。 非常感谢。
答案 0 :(得分:0)
您随时都不会在磁盘上写任何内容。如果您正在寻找修改文件,则应该明确地执行此操作。您应该找到有关如何处理文件in the official doc的一些指示。
答案 1 :(得分:0)
我从未使用过fileinput和optparse库,但至于解决方案,如果我在你的位置,这就是我要做的事情。
import re
CSVFile = open("FILENAME.csv", "r")
CSVFile = CSVFile.read() <-- forgot this before.
CSVFile = CSVFile.split("\n")
RM = re.compile("\d+")
Result = ""
for Row in CSVFile:
for Col in Row.split(","):
# Add it to the result if it is number
if RM.match(Col):
Result += Col+","
# Remove the data
else:
pass
CSVFile.write(Result)
CSVFile.close()
有关正则表达式库的更多信息,请参阅https://docs.python.org/2/library/re.html