我正在使用PyCharm社区版2016,我注意到我无法打开大数据输入文件或日志(20MB)。编辑只是说“文件XXX是大(SIZE)”。
不仅如此,但似乎没有办法改变限制。官方文档提到了一种增加使用intellisense的最大大小的方法,但没有提到可以打开的最大文件大小。这可能是真的吗?这真的是一个IDE无法以任何方式打开大型日志吗?
答案 0 :(得分:3)
您需要在以下某个位置制作idea.properties
文件。
在该文件中,您需要添加一行以指定最大文件大小(以KB为单位):
idea.max.intellisense.filesize=25000
可以在https://www.jetbrains.com/help/pycharm/2016.1/file-idea-properties.html
找到可以更改的其他属性答案 1 :(得分:2)
对于Pycharm 2018,您可以帮助->编辑自定义属性
然后添加此行
idea.max.content.load.filesize=25000
然后重新启动 pycharm。
答案 2 :(得分:1)
更改 Mac OS 的Filelimit Pycharm:
#!/usr/bin/env python
import argparse
import curses
import os
import select
import signal
import subprocess
import time
class Panes:
"""
curses-based app that divides the screen into a number of scrollable
panes and lets the caller write text into them
"""
def start(self, num_panes):
"set up the panes and initialise the app"
# curses init
self.num = num_panes
self.stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
# split the screen into number of panes stacked vertically,
# drawing some horizontal separator lines
scr_height, scr_width = self.stdscr.getmaxyx()
div_ys = [scr_height * i // self.num for i in range(1, self.num)]
for y in div_ys:
self.stdscr.addstr(y, 0, '-' * scr_width)
self.stdscr.refresh()
# 'boundaries' contains y coords of separator lines including notional
# separator lines above and below everything, and then the panes
# occupy the spaces between these
boundaries = [-1] + div_ys + [scr_height]
self.panes = []
for i in range(self.num):
top = boundaries[i] + 1
bottom = boundaries[i + 1] - 1
height = bottom - top + 1
width = scr_width
# create a scrollable pad for this pane, of height at least
# 'height' (could be more to retain some scrollback history)
pad = curses.newpad(height, width)
pad.scrollok(True)
self.panes.append({'pad': pad,
'coords': [top, 0, bottom, width],
'height': height})
def write(self, pane_num, text):
"write text to the specified pane number (from 0 to num_panes-1)"
pane = self.panes[pane_num]
pad = pane['pad']
y, x = pad.getyx()
pad.addstr(y, x, text)
y, x = pad.getyx()
view_top = max(y - pane['height'], 0)
pad.refresh(view_top, 0, *pane['coords'])
def end(self):
"restore the original terminal behaviour"
curses.nocbreak()
self.stdscr.keypad(0)
curses.echo()
curses.endwin()
def watch_fds_in_panes(fds_by_pane, sleep_at_end=0):
"""
Use panes to watch output from a number of fds that are writing data.
fds_by_pane contains a list of lists of fds to watch in each pane.
"""
panes = Panes()
npane = len(fds_by_pane)
panes.start(npane)
pane_num_for_fd = {}
active_fds = []
data_tmpl = {}
for pane_num, pane_fds in enumerate(fds_by_pane):
for fd in pane_fds:
active_fds.append(fd)
pane_num_for_fd[fd] = pane_num
data_tmpl[fd] = bytes()
try:
while active_fds:
all_data = data_tmpl.copy()
timeout = None
while True:
fds_read, _, _ = select.select(active_fds, [], [], timeout)
timeout = 0
if fds_read:
for fd in fds_read:
data = os.read(fd, 1)
if data:
all_data[fd] += data
else:
active_fds.remove(fd) # saw EOF
else:
# no more data ready to read
break
for fd, data in all_data.items():
if data:
strng = data.decode('utf-8')
panes.write(pane_num_for_fd[fd], strng)
time.sleep(sleep_at_end)
except KeyboardInterrupt:
panes.end()
raise
panes.end()
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--sleep-at-end", type=float, metavar="seconds",
help="time to sleep for at end before clearing screen",
default=0.)
parser.add_argument("commands", nargs="+", metavar="command",
help=("command to run in each pane "
"(if the command takes arguments, then quotation marks "
"will be needed around a command and its "
"arguments if invoking this from a shell)")
)
return parser.parse_args()
def main():
opts = parse_args()
num_panes = len(opts.commands)
procs = [subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
for command in opts.commands]
try:
watch_fds_in_panes([[proc.stdout.fileno(), proc.stderr.fileno()]
for proc in procs],
sleep_at_end=opts.sleep_at_end)
except KeyboardInterrupt:
print("interrupted")
for proc in procs:
proc.send_signal(signal.SIGINT)
time.sleep(1)
for proc in procs:
proc.send_signal(signal.SIGKILL)
if __name__ == '__main__':
main()
答案 3 :(得分:0)
对于win10
对于胜利10,您可以在
中看到文件idea.properties
C:\Program Files\JetBrains\PyCharm 2018.2.5\bin