import sys import re import collections WORD_RE = re.compile(r'\w+') index = collections.defaultdict(list) with open(sys.argv[1], encoding='utf-8') as fp: for line_no, line in enumerate(fp, 1): for match in WORD_RE.finditer(line): word = match.group() column_no = match.start()+1 location = (line_no, column_no) index[word].append(location) for word in sorted(index, key=str.upper): print(word, index[word]) Traceback (most recent call last): File "C:\Users\YJanu\yuanzu.py", line 5, in <module> for line_no, line in enumerate(fp, 1): NameError: name 'fp' is not defined 报错,修改代码可以正确执行
时间: 2024-02-21 10:56:48 浏览: 101
这个错误是因为 `fp` 变量没有被正确定义,可能是因为文件名参数没有传递给脚本。你可以尝试修改代码,在脚本执行时传递文件名参数,例如:
```python
import sys
import re
import collections
WORD_RE = re.compile(r'\w+')
index = collections.defaultdict(list)
with open(sys.argv[1], encoding='utf-8') as fp:
for line_no, line in enumerate(fp, 1):
for match in WORD_RE.finditer(line):
word = match.group()
column_no = match.start()+1
location = (line_no, column_no)
index[word].append(location)
for word in sorted(index, key=str.upper):
print(word, index[word])
```
在命令行中执行该脚本时,需要传递一个文件名参数,例如:
```
python script.py mytextfile.txt
```
其中 `script.py` 是你的脚本文件名,`mytextfile.txt` 是你要处理的文本文件名。
相关问题
import pyecharts.options as opts from pyecharts.charts import Line import pandas as pd import openpyxl from collections import Counter df_tb = pd.read_csv('目的地前15.csv') x=df_tb['地址'].tolist() y=df_tb['累计游玩人数'].tolist() line=( Line(init_opts=opts.InitOpts(width="10000px", height="1000px")) .add_xaxis(x) .add_yaxis(10,y) .set_global_opts( title_opts=opts.TitleOpts(title="日本前10目的地人数统计"), xaxis_opts=opts.AxisOpts(name="景点名称"), yaxis_opts=opts.AxisOpts(name="游玩人数(人)") ) ) line.render("目的地前15.html")给这个折线图规定x轴长度
可以通过设置 xaxis_opts 的 axislabel_opts 来调整 x 轴标签的显示长度,示例如下:
```
xaxis_opts=opts.AxisOpts(
name="景点名称",
axislabel_opts=opts.LabelOpts(rotate=-45, font_size=12) # 设置标签旋转角度和字体大小
),
```
其中,rotate 为标签旋转角度,font_size 为标签字体大小,可以根据实际需要进行调整。
import jieba from collections import Counter from pyecharts.charts import WordCloud from pyecharts import options as opts from pyecharts.globals import ThemeType from pyecharts.globals import SymbolType import collections fp = open('词云图.txt','r',encoding='utf-8') text = fp.read().strip().replace('\n','').replace(' ','') cut_words = list(jieba.cut(text)) stopwords = [line.strip() for line in open('/home/bit/sgdata/停用词.txt','r',encoding='utf-8').readlines()] result = [] for cut_word in cut_words: if cut_word not in stopwords: result.append(cut_word) data = collections.Counter(result) data = data.most_common(300)#词频前300 data word_cloud=( WordCloud(init_opts=opts.InitOpts(width='890px',height='800px',theme=ThemeType.LIGHT)) .add( '词云图', data, word_size_range=[10,200],#字体的大小从10到200 mask_image='/home/bit/sgdata/yezi.jpg', #shape='circle', textstyle_opts=opts.TextStyleOpts( font_family='STCAIYUN.TTF'#字体样式 ) ) .set_global_opts( title_opts=opts.TitleOpts( title='词云图', title_textstyle_opts=opts.TextStyleOpts(font_size=23), pos_left='5%' ) ) .render('/home/bit/sgdata/wordcloud.html') )在这份代码上加一个可以保存有效词云的代码
你可以在代码最后添加以下代码来保存词云图:
```python
word_cloud.render('有效词云图.html')
```
这会将词云图保存为一个名为“有效词云图.html”的文件。你可以根据需要更改文件名和路径。
阅读全文