python - 如何处理下面 sys.argv __name__ 语句中的“,”
问题描述
这是我正在开发的一个小型终端日记应用程序。
预期功能:在终端python3 journal.py whatever note I want to keep, with commas included.
中输入“我想保留的任何注释,包括逗号”条目存储在单个单元格的 csv 中。
实际功能:注释“我想保留的任何注释,包括逗号”被拆分为“,”上的多个单元格。这个问题在 multi_stuff 函数中得到了解决,但同样的技术在名称部分的 sys.argv[1:] 中不起作用。
有什么想法吗?
import csv
import sys
import re
import datetime
def record(stuff):
with open('journal.csv', 'a') as f:
f.write(str(datetime.datetime.now())+','+stuff+'\n')
def multi_line():
while True:
multi_stuff = input('Type "Q" to quit. Otherwise, talk to me -> ').lower()
if ',' in multi_stuff:
multi_stuff = multi_stuff.replace(',', '","')
if multi_stuff == 'q':
break
with open('journal.csv', 'a') as f:
f.write(str(datetime.datetime.now())+','+multi_stuff+'\n')
def search():
keyword = input('search term -> ').lower()
regex = r"\b(?=\w)" + re.escape(keyword) + r"\b(?!\w)"
with open('journal.csv', 'r') as csv:
for line in csv:
if re.search(regex, line):
print(line)
if __name__ == '__main__':
if sys.argv[1].lower() == '-s':
search()
elif sys.argv[1].lower() == '-m':
multi_line()
else:
arg = sys.argv[1:]
if ',' in arg:
arg = arg.replace(',', '","')
record(' '.join(arg))
else:
record(' '.join(arg))
解决方案
推荐阅读
- azure - 在 Linux docker 容器中运行 Asp.Net Core 3.1 的 Azure 应用服务是否支持用户分配的托管标识?
- java - 关于转码的问题,我应该使用什么方法?
- go - 我如何处理 Go 版本的 animalDB API 的结果值?
- sql - 在第三张桌子上连接两张桌子
- java - Android Emulator 没有显示其他可用的 WIFI 信号
- angular - 为什么我的屏幕路由逻辑不起作用?
- c++ - 如何在 SDL ttf 中提高字体质量并动态显示文本和数字
- angular - 如何使用 Spring Boot 和 Angular 应用程序隐藏授权标头
- javascript - Electron showOpenDialog 箭头功能(event.send)不起作用
- android - 消费购买导致空对象引用